Comment ajouter plusieurs valeurs à une liste en Python

177

J'essaie de comprendre comment ajouter plusieurs valeurs à une liste en Python. Je sais qu'il existe peu de méthodes pour le faire, telles que la saisie manuelle des valeurs ou la purge de l'opération d'ajout dans une forboucle, ou les fonctions appendet extend.

Cependant, je me demande s'il existe une façon plus soignée de le faire? Peut-être un certain package ou fonction?

ChangeMyName
la source
8
Avez-vous déjà trouvé la documentation de la liste ?
Martijn Pieters
5
Vous avez dit que vous savez qu'il existe quelques méthodes pour le faire , mais ne montrez pas ce que vous avez essayé, ou n'expliquez pas pourquoi les méthodes que vous connaissez déjà ne sont pas assez bonnes.
Inutile
Veuillez définir plus net queextend() .
Frédéric Hamidi
3
@ FrédéricHamidi more neat == additional package dependency, bien sûr!
hexparrot
1
Comment cette question peut-elle être considérée comme hors sujet?
Victor Schröder

Réponses:

356

Vous pouvez utiliser la méthode de séquencelist.extend pour étendre la liste de plusieurs valeurs à partir de n'importe quel type d'itérable, qu'il s'agisse d'une autre liste ou de tout autre élément qui fournit une séquence de valeurs.

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

Vous pouvez donc utiliser list.append()pour ajouter une seule valeur et list.extend()pour ajouter plusieurs valeurs.

poussée
la source
1
Un peu compliqué de présenter les générateurs à quelqu'un le premier jour d'utilisation de Python.
Daniel Roseman
1
@DanielRoseman Mon point est que les valeurs peuvent provenir de n'importe quel type de séquence itérable.
poke
6
Notez que extend ne conserve pas la structure de l'élément que vous ajoutez par rapport à append(). Avec votre exemple utilisant append, vous obtiendrez [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia
1
@YohanObadia Si c'était le cas pour Python 3 en '17, ce n'est plus le cas - Python 3.7.7 fait exactement ce que poke décrit.
Post169
28

Autre que la appendfonction, si par "valeurs multiples" vous entendez une autre liste, vous pouvez simplement les concaténer comme ceci.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
glissière
la source
9

Si vous jetez un oeil à la documentation officielle , vous verrez juste en dessous append, extend. C'est ce que vous recherchez.

Il y a aussi itertools.chainsi vous êtes plus intéressé par une itération efficace que par une structure de données entièrement remplie.

Silas Ray
la source