Funktionen zip () tager iterables (kan være nul eller mere), samler dem i en tuple og returnerer den.
Funktionens syntaks zip()
er:
zip (* iterables)
zip () Parametre
Parameter | Beskrivelse |
---|---|
iterables | kan være indbyggede iterables (som: liste, streng, dict) eller brugerdefinerede iterables |
Anbefalet læsning: Python Iteratorer, __iter__ og __next__
Returværdi fra zip ()
Den zip()
funktion giver en iterator af tupler baseret på de Iterable objekter.
- Hvis vi ikke videregiver nogen parameter,
zip()
returnerer en tom iterator - Hvis en enkelt iterabel videregives,
zip()
returneres en iterator af tupler, hvor hver tuple kun har et element. - Hvis flere iterables sendes,
zip()
returneres en iterator af tupler med hver tuple med elementer fra alle iterables.
Antag, at to iterables sendes tilzip()
; en iterabel indeholdende tre og en anden indeholdende fem elementer. Derefter indeholder den returnerede iterator tre tupler. Det er fordi iterator stopper, når den korteste iterable er opbrugt.
Eksempel 1: Python-zip ()
number_list = (1, 2, 3) str_list = ('one', 'two', 'three') # No iterables are passed result = zip() # Converting iterator to list result_list = list(result) print(result_list) # Two iterables are passed result = zip(number_list, str_list) # Converting iterator to set result_set = set(result) print(result_set)
Produktion
() ((2, 'to'), (3, 'tre'), (1, 'en'))
Eksempel 2: Forskelligt antal iterable elementer
numbersList = (1, 2, 3) str_list = ('one', 'two') numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Notice, the size of numbersList and numbers_tuple is different result = zip(numbersList, numbers_tuple) # Converting to set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Converting to set result_set = set(result) print(result_set)
Produktion
((2, 'TWO'), (3, 'THREE'), (1, 'ONE')) ((2, 'two', 'TWO'), (1, 'one', 'ONE'))
Den * operatør kan bruges i forbindelse med zip()
at pakke listen.
zip (* zippedList)
Eksempel 3: Udpakning af værdien ved hjælp af zip ()
coordinate = ('x', 'y', 'z') value = (3, 4, 5) result = zip(coordinate, value) result_list = list(result) print(result_list) c, v = zip(*result_list) print('c =', c) print('v =', v)
Produktion
(('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5)