Hoe twee lijsten in python te comprimeren


Vaak ben je misschien geïnteresseerd in het comprimeren (of „samenvoegen“) van twee lijsten in Python. Gelukkig is dit eenvoudig te doen met de functie zip().

Deze tutorial toont verschillende voorbeelden van praktisch gebruik van deze functie.

Voorbeeld 1: Comprimeer twee lijsten van gelijke lengte tot één lijst

De volgende syntaxis laat zien hoe u twee lijsten van gelijke lengte tot één kunt comprimeren:

 #define list a and list b
a = ['a', 'b', 'c']
b = [1, 2, 3]

#zip the two lists together into one list
list( zip (a,b))

[('a', 1), ('b', 2), ('c', 3)]

Voorbeeld 2: Comprimeer twee lijsten van gelijke lengte in een woordenboek

De volgende syntaxis laat zien hoe u twee lijsten van gelijke lengte in een woordenboek comprimeert:

 #define list of keys and list of values
keys = ['a', 'b', 'c']
values = [1, 2, 3]

#zip the two lists together into one dictionary
dict( zip (keys, values)) 

{'a': 1, 'b': 2, 'c': 3}

Voorbeeld 3: Comprimeer twee lijsten van ongelijke lengte

Als uw twee lijsten een ongelijke lengte hebben, wordt zip() afgekapt tot de lengte van de kortere lijst:

 #define list a and list b
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3]

#zip the two lists together into one list
list( zip (a,b))

[('a', 1), ('b', 2), ('c', 3)]

Als u wilt voorkomen dat zip() wordt ingekort tot de lengte van de kortste lijst, kunt u in plaats daarvan de functie zip_longest() uit de itertools- bibliotheek gebruiken.

Standaard vult deze functie ‚Geen‘ in voor ontbrekende waarden:

 from itertools import zip_longest

#define list a and list b
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3]

#zip the two lists together without truncating to length of shortest list
list( zip_longest (a, b))

[('a', 1), ('b', 2), ('c', 3), ('d', None)]

U kunt echter het opvulwaarde- argument gebruiken om een andere opvulwaarde op te geven:

 #define list a and list b
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3]

#zip the two lists together, using fill value of '0'
list( zip_longest (a, b, fillvalue= 0 ))

[('a', 1), ('b', 2), ('c', 3), ('d', 0)]

U kunt de volledige documentatie voor de functie zip_longest() hier vinden.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert