Que é a diferença entre a lista [-1:] [0] e lista [len (lista) -1]?
Pergunta
Para que dizer que você deseja que o último elemento de uma lista de python: qual é a diferença entre
myList[-1:][0]
e
myList[len(myList)-1]
Eu pensei que não havia nenhuma diferença, mas então eu tentei este
>>> list = [0]
>>> list[-1:][0]
0
>>> list[-1:][0] += 1
>>> list
[0]
>>> list[len(list)-1] += 1
>>> list
[1]
Eu estava um pouco surpreendido ...
Solução
Se você usar a divisão de [-1:], a lista retornada é um rasa-cópia, não de referência. assim [-1:] [0] modifica a nova lista. [Len (lista) -1] é referência ao último objecto.
Outras dicas
list[-1:]
cria uma nova lista. Para obter o mesmo comportamento que list[len(list)-1]
ele teria que retornar uma vista de algum tipo de list
, mas como eu disse, ele cria uma nova lista temporária. Você, então, avançar para editar a lista temporária.
De qualquer forma, você sabe que você pode usar list[-1]
para a mesma coisa, certo?
O fatiamento cria uma cópia (cópia superficial). É muitas vezes usado como um idioma cópia superficial.
i.
list2 = list1[:]
é equivalente a
import copy
list2 = copy.copy(list1)