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?


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.


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]

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.