Python zip ()

Функція zip () приймає ітерабелі (може бути нулем і більше), об'єднує їх у кортеж і повертає.

Синтаксис zip()функції:

 zip (* ітерабелі)

zip () Параметри

Параметр Опис
iterables можуть бути вбудованими ітерабельними файлами (наприклад, список, рядок, dict) або визначеними користувачем ітерабельними файлами

Рекомендуємо прочитати: Ітератори Python, __iter__ та __next__

Повернене значення з zip ()

zip() Функція повертає ітератор кортежів на основі ітерації об'єктів.

  • Якщо ми не передаємо жодного параметра, 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) 

Цікаві статті...