Jak dołączyć wiele wartości do listy w Pythonie

175

Próbuję dowiedzieć się, jak dołączyć wiele wartości do listy w Pythonie. Wiem, że istnieje kilka metod, aby to zrobić, takich jak ręczne wprowadzanie wartości, czyszczenie operacji dołączania w forpętli lub appendi extendfunkcje.

Zastanawiam się jednak, czy istnieje bardziej zgrabny sposób, aby to zrobić? Może jakiś pakiet lub funkcja?

ChangeMyName
źródło
8
Czy znalazłeś już dokumentację listy ?
Martijn Pieters
5
Powiedziałeś, że wiesz, że jest na to kilka metod , ale nie pokazuj, czego próbowałeś, ani nie wyjaśniaj, dlaczego metody, które znasz, nie są wystarczająco dobre.
Bezużyteczne
Określ bardziej schludnie niżextend() .
Frédéric Hamidi
3
@ FrédéricHamidi more neat == additional package dependency, oczywiście!
hexparrot
1
Jak można uznać to pytanie za niezwiązane z tematem?
Victor Schröder

Odpowiedzi:

352

Możesz użyć metody sekwencji,list.extend aby rozszerzyć listę o wiele wartości z dowolnej iterowalnej listy, czy to innej listy, czy jakiejkolwiek innej rzeczy, która dostarcza sekwencję wartości.

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

Możesz więc użyć, list.append()aby dołączyć pojedynczą wartość i list.extend()dołączyć wiele wartości.

szturchać
źródło
1
Nieco skomplikowane jest wprowadzenie generatorów do kogoś pierwszego dnia używania Pythona.
Daniel Roseman,
1
@DanielRoseman Chodzi mi o to, że wartości mogą pochodzić z dowolnej iterowalnej sekwencji.
poke
6
Zwróć uwagę, że rozszerzenie nie zachowuje struktury dodawanego elementu w porównaniu do append(). W swoim przykładzie przy użyciu append otrzymasz [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia
1
@YohanObadia Jeśli tak było w przypadku Pythona 3 w '17, to już nie jest - Python 3.7.7 robi dokładnie to, co opisano w poke.
Post169
28

Poza appendfunkcją, jeśli przez „wiele wartości” masz na myśli inną listę, możesz po prostu połączyć je w ten sposób.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
suwak
źródło
9

Jeśli przyjrzeć się z oficjalnymi docs , zobaczysz tuż poniżej append, extend. Tego właśnie szukasz.

Jest też, itertools.chainjeśli bardziej interesuje Cię wydajna iteracja niż uzyskanie w pełni zapełnionej struktury danych.

Silas Ray
źródło