Jak połączyć dwie listy w Pythonie
wprowadzenie
łączenie List akt tworzenia pojedynczej listy z wielu mniejszych list poprzez łączenie ich ze sobą.
istnieje wiele sposobów łączenia list w Pythonie. W szczególności w tym artykule omówimy, jak połączyć dwie listy w Pythonie za pomocą operatora plus, operatora rozpakuj, operatora multiply, instrukcji łączenia pętli ,funkcjiitertools.chain()
I wbudowanej metody listyextend()
.
we wszystkich poniższych fragmentach kodu wykorzystamy następujące listy:
list_a = list_b =
łączenie listy operatorów Plus
najprostszym i najprostszym sposobem połączenia dwóch list w Pythonie jest operator plus (+
):
list_c = list_a + list_bprint (list_c)
rozpakuj połączenie listy operatorów
ta metoda pozwala na dołączenie wielu list. Jest to dość nowa funkcja i dostępna tylko w Pythonie 3.6+. Operator rozpakowywania, jak sama nazwa wskazuje, rozpakowuje obiektiterable
do swoich elementów. Rozpakowanie jest przydatne, gdy chcemy wygenerować mnóstwo argumentów z jednej listy. Na przykład:
def foo(a, b, c, d): return a + b + c + d# We want to use the arguments of the following list with the foo function.# However, foo doesn't take a list, it takes 4 numbers, which is why we need to# unpack the list.foo(*list_a)# This is the same as if we were to call foo(1,2,3,4)
10
w skrócie używamy konstruktora listy () I generujemy elementy nowej listy w kolejności rozpakowując kilka list jeden po drugim:
list_c = # This is the same as:# list_c = print (list_c)
Multiply Operator List Concatenation
Operator multiply (*
) jest szczególnym przypadkiem połączenia list w Pythonie. Służy do wielokrotnego powtórzenia całej listy (dlatego jest oznaczona operatorem mnożenia):
print(list_a * 2)
dla połączenia listy pętli
w tej metodzie przejdziemy przez jedną listę, dodając każdy z jej elementów do innej listy jeden po drugim. Po zakończeniu pętli będziesz miał jedną listę ze wszystkimi żądanymi elementami:
for i in list_b: list_a.append(i)print (list_a)
itertools.Chain () List Concatenation
ta metoda działa z iterables
. Konstruuje i zwraca iterator, który może być później użyty do skonstruowania listy łańcuchowej (pomyśl o tym jak o strzałce, która zapamiętuje kolejność elementów w wynikowej liście):
# If we were to call itertools.chain() like soiterator = itertools.chain(, )# Basically the iterator is an arrow which can give us the next() element in a sequence, so if we call a list() constructor with said iterable, it works like this:list(iterator)
pod maską, coś w tym stylu dzieje się tak, że:
# Iterator: The next element in this list is 1 , ^# Iterator: The next element in this list is 2, ^# Iterator: The next element in this list is 3 , ^# Iterator: The next element in this list is 4 , ^# So the list() call looks something like:list()# Keep in mind this is all pseudocode, Python doesn't give the developer direct control over the iterator
dla tej metody musisz zaimportować itertools
:
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
Extend() list Concatenation
jest to wbudowana funkcja AA, której można użyć do rozszerzenia listy. Tutaj rozwijamy pierwszą listę dodając do niej elementy drugiej listy:
list_a.extend(list_b)print (list_a)