Функція zip() приймає ітеровані об’єкти, об’єднує їх у кортеж та повертає. Наприклад:
|
1 2 3 4 5 |
languages = ['Java', 'Python', 'JavaScript'] versions = [14, 3, 6] result = zip(languages, versions) print(list(result)) |
Результат:
[('Java', 14), ('Python', 3), ('JavaScript', 6)]
Синтаксис функції zip()
|
1 |
zip(*iterables) |
Параметри функції zip()
Функція zip() приймає один параметр:
*iterables — це можуть бути вбудовані ітеровані об’єкти (наприклад: список, рядок, словник) або користувацькі ітеровані об’єкти.
Значення, яке повертає функція zip()
Функція zip() повертає ітератор кортежів на основі ітерованих об’єктів.
Якщо параметр не вказано, функція zip() повертає порожній ітератор.
Якщо передано один ітерований об’єкт, то функція zip() повертає ітератор кортежів, кожен з яких містить тільки один елемент.
Якщо передано кілька ітерованих об’єктів, то функція zip() повертає ітератор кортежів, кожен з яких містить елементи з усіх ітерованих об’єктів.
Припустимо, у функцію zip() передані два ітеровані об’єкти: перший ітерований об’єкт містить три елементи, а другий — п’ять елементів. Тоді повернений ітератор міститиме три кортежі, оскільки ітератор зупиняється, коли закінчується найкоротший ітерований об’єкт.
Приклад №1: Функція zip() в Python
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
number_list = [1, 2, 3] str_list = ['one', 'two', 'three'] # Ітеровані об'єкти не передані result = zip() # Конвертуємо ітератор в список result_list = list(result) print(result_list) # Передано два ітеровані об'єкти result = zip(number_list, str_list) # Конвертуємо ітератор у множину result_set = set(result) print(result_set) |
Результат:
[]
{(2, 'two'), (1, 'one'), (3, 'three')}
Приклад №2: Функція zip() з різною кількістю елементів ітерованих об’єктів
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
numbersList = [1, 2, 3] str_list = ['one', 'two'] numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Зверніть увагу, що довжина numbersList і numbers_tuple різна result = zip(numbersList, numbers_tuple) # Конвертуємо у множину result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Конвертуємо у множину result_set = set(result) print(result_set) |
Результат:
{(1, 'ONE'), (3, 'THREE'), (2, 'TWO')}
{(1, 'one', 'ONE'), (2, 'two', 'TWO')}
Оператор * може бути використаний у поєднанні з функцією zip() для “розпакування” списку.
|
1 |
zip(*zippedList) |
Приклад №3: “Розпакування” значень за допомогою функції zip()
|
1 2 3 4 5 6 7 8 9 10 |
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)

(9 оцінок, середня: 4,56 з 5)