Két lista összefűzése Python-ban
Bevezetés
lista összefűzése a több kisebb listából egyetlen lista létrehozásának cselekedete százszorszép láncolással.
A listák összefűzésének számos módja van a Python-ban. Pontosabban, ebben a cikkben áttekintjük, hogyan lehet két listát összefűzni Python-ban a plusz operátor, kicsomagolás operátor, szorzás operátor, kézi hurok összefűzéshez, a itertools.chain()
függvény és a beépített lista metódusa extend()
.
a kódrészletek alatt, akkor használja a következő listák:
list_a = list_b =
Plusz Üzemeltető Lista Összefűzés
A legegyszerűbb, valamint a legegyszerűbb módja annak, hogy összefűzni két lista a Python a plusz (+
) üzemeltető:
list_c = list_a + list_bprint (list_c)
Kicsomagolni Üzemeltető Lista Összefűzés
Ez a módszer lehetővé teszi, hogy csatlakozzon több listán is. Ez egy meglehetősen új funkció, csak a Python 3.6+ – tól érhető el. A kicsomagoló operátor, ahogy a neve is sugallja, kicsomagolja aiterable
objektumot az elemeibe. Kicsomagolás hasznos, ha azt akarjuk, hogy létrehoz egy rengeteg érvek egyetlen listából. Például:
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
dióhéjban a list konstruktort használjuk (), és az új lista elemeit úgy állítjuk elő, hogy több listát kicsomagolunk egymás után:
list_c = # This is the same as:# list_c = print (list_c)
szorzás Operátorlista összefűzése
a szorzás (*
) az operátor a lista összefűzésének különleges esete a Python-ban. Arra használják, hogy ismételje meg a teljes listát többször (ezért jelöli a szorzás operátor):
print(list_a * 2)
a hurok Lista Összefűzés
ez A módszer megyünk keresztül egy lista, amíg úgy, hogy minden egyes elemét egy másik lista, egyenként. Ha a hurok vége lesz egy listát az összes kívánt elemeket:
for i in list_b: list_a.append(i)print (list_a)
itertools.lánc () lista összefűzése
Ez a módszer működik iterables
. Felépít és visszaad egy iterátort, amely később felhasználható a láncolt lista felépítésére (gondoljon rá nyílként, amely csak megjegyzi az elemek sorrendjét a kapott listában):
# 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)
a motorháztető alatt valami ezen a vonalon történik:
# 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
ehhez a módszerhez importálnia kell itertools
:
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
extend() lista összefűzése
Ez aa beépített funkció, amely egy lista kibontására használható. Itt bővítjük az első listát a második lista elemeinek hozzáadásával:
list_a.extend(list_b)print (list_a)