1
resposta

Operação sort e append

Olá,

Gostaria de adicionar que todos as operações .sort e .append sofrem do mesmo 'problema'.

E que mesmo lendo o tópico Ordenação de lista aberto pelo Fabiano quando no Stackoverflow, eu não havia entendido. E isso tem a ver com métodos in-place.

Pelo que entendi, como não há cópia da lista nessas operações, não é possível atribuir diretamente novo valor automaticamente. Fazendo com que o código abaixo retorne None para ambos os casos.

a = [12, 52, 0, 21, 62, 80]

A = a.sort()

B = a.append(50)

print(A)

print(B)

No caso do .sort é possível usar a função sorted(), há alguma alternativa para .append?

1 resposta

O fato dessa atribuição dessas operações resultar em None é por que elas não retornam nada (retornam None) ao serem chamadas.

Uma alternativa para o append é realizar a concatenação de duas listas:

lista = [5,7,1]
nova_lista = lista + [6] # Transforma 6 em uma lista e faz a concatenação
print(nova_lista) # [5,7,1,6]