Como anexar vários valores a uma lista em Python

175

Estou tentando descobrir como acrescentar vários valores a uma lista em Python. Sei existem poucos métodos para o fazer, tal como introduzir manualmente os valores, ou pur a operação de acréscimo em um forcircuito, ou appende extendfunções.

No entanto, gostaria de saber se existe uma maneira mais elegante de fazer isso? Talvez um determinado pacote ou função?

ChangeMyName
fonte
8
Você já encontrou a documentação da lista ?
Martijn Pieters
5
Você disse que sabe que existem alguns métodos para fazê-lo , mas não mostra o que tentou ou explique por que os métodos que você já conhece não são bons o suficiente.
Inútil
Por favor, defina mais puro queextend() .
Frédéric Hamidi
3
@ FrédéricHamidi more neat == additional package dependency, é claro!
hexparrot
1
Como essa questão pode ser considerada fora de tópico?
Victor Schröder

Respostas:

352

Você pode usar o método de sequêncialist.extend para estender a lista por vários valores de qualquer tipo iterável, seja outra lista ou qualquer outra coisa que forneça uma sequência de valores.

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Portanto, você pode usar list.append()para acrescentar um único valor e list.extend()adicionar vários valores.

cutucar
fonte
1
Um pouco complicado para apresentar geradores a alguém no primeiro dia de uso do Python.
precisa
1
@DanielRoseman Meu argumento é que os valores podem vir de qualquer tipo de sequência iterável.
cutuca
6
Observe que a extensão não mantém a estrutura do elemento que você adiciona em comparação append(). Com o seu exemplo usando append, você receberia [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia
1
@YohanObadia Se esse foi o caso do Python 3 em 17, não é mais o caso - o Python 3.7.7 faz exatamente o que foi descrito.
Post169
28

Além da appendfunção, se por "valores múltiplos" você quer dizer outra lista, você pode simplesmente concatená-los dessa maneira.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
controle deslizante
fonte
9

Se você der uma olhada nos documentos oficiais , verá logo abaixo append,extend . É isso que você está procurando.

Também existe itertools.chainse você estiver mais interessado em iteração eficiente do que com uma estrutura de dados totalmente preenchida.

Silas Ray
fonte