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 ...

Foi útil?

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top