Zip () -funktionen tar iterables (kan vara noll eller mer), sammanställer dem i en tuple och returnerar den.
zip()
Funktionens syntax är:
zip (* iterables)
zip () Parametrar
Parameter | Beskrivning |
---|---|
iterables | kan vara inbyggda iterables (som: list, string, dict) eller användardefinierade iterables |
Rekommenderad läsning: Python Iterators, __iter__ och __next__
Returvärde från zip ()
Den zip()
returnerar en iterator av tupler baserat på iterable objekt.
- Om vi inte skickar någon parameter,
zip()
returnerar en tom iterator - Om en enstaka iterabel passeras
zip()
returnerar en iterator av tuplar med varje tupel som bara har ett element. - Om flera iterables skickas
zip()
returnerar en iterator av tuples med varje tuple som har element från alla iterables.
Antag att två iterables skickas tillzip()
; en iterabel som innehåller tre och en annan som innehåller fem element. Sedan kommer den returnerade iteratorn att innehålla tre tuplar. Det beror på att iterator stannar när den kortaste iterable är uttömd.
Exempel 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, 'två'), (3, 'tre'), (1, 'en'))
Exempel 2: Olika antal iterabla element
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ören kan användas i samband med zip()
att packa listan.
zip (* zippedList)
Exempel 3: Packa upp värdet med hjälp av 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)