Articles

Jak Spojit Dva Seznamy v Pythonu

Úvod

Seznam zřetězení zákon o vytvoření jednotného seznamu z více menších seznamy daisy řetězení dohromady.

existuje mnoho způsobů, jak zřetězit seznamy v Pythonu. Konkrétně v tomto článku se budeme jít nad tím, jak spojit dva seznamy v Pythonu používat operátor plus, rozbalit operátor násobení operátor, manuální pro smyčce zřetězení, itertools.chain() funkce a vestavěný seznam metodu extend().

Ve všech fragmentů kódu níže, budeme využívat následující seznamy:

list_a = list_b = 

Plus Seznam operátorů Zřetězení

nejjednodušší a nejvíce jednoduchý způsob, jak spojit dva seznamy v Pythonu je plus (+) operátor:

list_c = list_a + list_bprint (list_c)

Rozbalit Seznam operátorů Zřetězení

Tato metoda vám umožní připojit více seznamů. Jedná se o poměrně novou funkci a je k dispozici pouze od Pythonu 3.6+. Operátor rozbalení, jak název napovídá, rozbalí objekt iterable do svých prvků. Rozbalení je užitečné, když chceme vygenerovat nepřeberné množství argumentů z jediného seznamu. Například:

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

stručně řečeno, jsme použít konstruktor seznamu () a generování prvků nový seznam v pořadí podle vybalování více seznamů jeden po druhém:

list_c = # This is the same as:# list_c = print (list_c)

Násobit Operátor Zřetězení Seznamu

množit (*) provozovatel je speciální případ seznamu, zřetězení v Pythonu. Používá se opakovat celý seznam vícekrát (což je důvod, proč je označován s a operátor násobení):

print(list_a * 2)

pro smyčku Seznamu, Zřetězení

V této metodě budeme jít přes jeden seznam, zatímco připojí každý z jeho prvků do jiného seznamu jeden po druhém. Když smyčka je u konce, budete mít jeden seznam s všechny požadované prvky:

for i in list_b: list_a.append(i)print (list_a)

itertools.řetěz () zřetězení seznamu

tato metoda pracuje s iterables. To vytváří a vrací iterátor, který může být později použita pro konstrukci zřetězené seznam (představte si to jako šipku, která se právě zapamatuje pořadí prvků ve výsledném seznamu):

# 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 kapotou, něco podél těchto linek je, co se stane:

# 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

Pro tuto metodu, budete muset importovat itertools:

import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)

rozšířit() Seznam Zřetězení

Toto je aa postaven-je funkce, která může být použita k rozšíření seznamu. Zde rozšiřujeme první seznam přidáním prvků druhého seznamu:

list_a.extend(list_b)print (list_a)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *