Python zip ()

Функцията 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) 

Интересни статии...