Hoe twee lijsten in Python
Inleiding
lijst samenvoegen De handeling van het maken van een enkele lijst van meerdere kleinere Lijsten door ze aan elkaar te koppelen.
Er zijn vele manieren om lijsten samen te voegen in Python. Specifiek, in dit artikel, zullen we gaan over hoe twee lijsten in Python samen te voegen met behulp van de plus operator, unpack operator, multiply operator, manual for loop concatenation, de itertools.chain()
functie en de ingebouwde list methode extend()
.
in alle onderstaande codefragmenten maken we gebruik van de volgende lijsten:
list_a = list_b =
Plus Operator List Concatenation
De eenvoudigste en meest eenvoudige manier om twee lijsten in Python samen te voegen is de Plus (+
) operator:
list_c = list_a + list_bprint (list_c)
uitpakken operatorlijst samenvoeging
Met deze methode kunt u meerdere lijsten samenvoegen. Het is een vrij nieuwe functie en alleen beschikbaar vanaf Python 3.6+. De uitpakken operator, zoals de naam al aangeeft, pakt eeniterable
object uit in zijn elementen. Uitpakken is handig als we een overvloed aan argumenten uit een enkele lijst willen genereren. Bijvoorbeeld:
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
In een notendop gebruiken we de lijstbouwer () en genereren we de elementen van de nieuwe lijst in volgorde door meerdere lijsten na elkaar uit te pakken:
list_c = # This is the same as:# list_c = print (list_c)
vermenigvuldig Operator lijst concatenatie
De vermenigvuldig (*
) operator is een speciaal geval van lijst concatenatie in Python. Het wordt gebruikt om een hele lijst meerdere keren te herhalen (daarom wordt het aangeduid met een vermenigvuldigingsoperator):
print(list_a * 2)
voor luslijst concatenatie
In deze methode gaan we door een lijst terwijl elk van de elementen een voor een aan een andere lijst wordt toegevoegd. Als de lus voorbij is, heeft u een enkele lijst met alle gewenste elementen:
for i in list_b: list_a.append(i)print (list_a)
itertools.chain () List Concatenation
Deze methode werkt met iterables
. Het construeert en retourneert een iterator die later gebruikt kan worden om de lijst met ketens te construeren (zie het als een pijl die gewoon de volgorde van elementen in de resulterende lijst onthoudt):
# 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)
onder de motorkap, iets in deze lijnen is wat er gebeurt:
# 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
voor deze methode moet u importeren itertools
:
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
extend() List Concatenation
Dit is aa built-it functie die kan worden gebruikt om een lijst uit te breiden. Hier breiden we de eerste lijst uit door er elementen van de tweede lijst aan toe te voegen:
list_a.extend(list_b)print (list_a)