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.