Hur man sammanfogar två listor i Python
introduktion
lista sammankoppling handlingen att skapa en enda lista från flera mindre listor genom att kedja ihop dem.
det finns många sätt att sammanfoga listor i Python. Specifikt, i den här artikeln kommer vi att gå över hur man sammanfogar två listor i Python med hjälp av Plus-operatören, packa upp operatören, multiplicera operatören, manuell för loop-sammankoppling, funktionen itertools.chain()
och den inbyggda listmetoden extend()
.
i alla kodavsnitt nedan använder vi följande listor:
list_a = list_b =
Plus Operatörslista sammankoppling
det enklaste och enklaste sättet att sammanfoga två listor i Python är plus (+
) operatör:
list_c = list_a + list_bprint (list_c)
packa upp operatörslistan sammankoppling
med den här metoden kan du gå med i flera listor. Det är en ganska ny funktion och endast tillgänglig från Python 3.6+. Uppackningsoperatören, som namnet antyder, packar upp ett iterable
– objekt i dess element. Uppackning är användbart när vi vill generera en uppsjö av argument från en enda lista. Till exempel:
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
i ett nötskal använder vi listkonstruktören () och genererar elementen i den nya listan i ordning genom att packa upp flera listor efter varandra:
list_c = # This is the same as:# list_c = print (list_c)
multiplicera Operatörslistan sammankoppling
multiplicera (*
) operatören är speciellt fall av list sammankoppling i Python. Det används för att upprepa en hel lista flera gånger (varför den betecknas med en multiplikationsoperatör):
print(list_a * 2)
för loop List Concatenation
i den här metoden går vi igenom en lista medan vi lägger till var och en av dess element till en annan lista en efter en. När slingan är över kommer du att ha en enda lista med alla önskade element:
for i in list_b: list_a.append(i)print (list_a)
itertools.kedja () lista sammanfogning
denna metod fungerar med iterables
. Den konstruerar och returnerar en iterator som senare kan användas för att konstruera den kedjade listan (tänk på den som en pil som bara memorerar ordningen på element i den resulterande listan):
# 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)
under huven är något längs dessa linjer vad som händer:
# 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
för den här metoden måste du importera itertools
:
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
extend() List Concatenation
detta är enen inbyggd it-funktion som kan användas för att expandera en lista. Här utökar vi den första listan genom att lägga till element i den andra listan till den:
list_a.extend(list_b)print (list_a)