Функцията zip () взема итерации (могат да бъдат нула или повече), обединява ги в кортеж и ги връща.
Синтаксисът на zip()
функцията е:
zip (* iterables)
zip () Параметри
Параметър | Описание |
---|---|
iterables | могат да бъдат вградени повторими (като: списък, низ, dict) или дефинирани от потребителя итерации |
Препоръчително четене: Python Iterators, __iter__ и __next__
Върната стойност от zip ()
Най zip()
функцията връща итератор на кортежи въз основа на iterable обекти.
- Ако не предадем нито един параметър,
zip()
връща празен итератор - Ако е предаден един итерабилен,
zip()
връща итератор на кортежи, като всеки кортеж има само един елемент. - Ако са предадени множество итерации,
zip()
връща итератор на кортежи, като всеки кортеж има елементи от всички итерации.
Да предположим, че два итерабила са предадени наzip()
; един итерабилен, съдържащ три и друг, съдържащ пет елемента. След това върнатият итератор ще съдържа три кортежа. Това е така, защото итераторът спира, когато е изчерпан най-краткият итерируем.
Пример 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)
Изход
() ((2, „две“), (3, „три“), (1, „една“))
Пример 2: Различен брой итеративни елементи
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)
Изход
((2, "ДВЕ"), (3, "ТРИ"), (1, "ЕДНО")) ((2, "две", "ДВЕ"), (1, "едно", "ЕДНО"))
Операторът * може да се използва заедно с, за zip()
да разархивирате списъка.
zip (* zippedList)
Пример 3: Разархивиране на стойността с помощта на 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)
Изход
(('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5)