Рубрики
Без рубрики

Учебник по функциям zip Python (простые примеры)

Узнайте, как объединить несколько итераций в один объект с помощью функции zip Python. Узнайте, как архивировать списки и матрицы, отправлять выходные данные в файл и многое другое

Автор оригинала: LikeGeeks.

Функция zip() в Python programming -это встроенная стандартная функция, которая принимает несколько итераций или контейнеров в качестве параметров. Итерируемый в Python объект-это объект, который может быть повторен или пройден как коллекция.

Функция zip() используется для сопоставления одних и тех же индексов более чем одной итерации. Сопоставление этих индексов приведет к созданию объекта zip.

Как работает функция zip?

Функция zip связывает вместе первые элементы каждого итератора, затем связывает вместе вторые элементы и так далее.

Если итеративные объекты в функции zip имеют разную длину, то наименьшая итерационная длина определяет длину сгенерированного вывода.

Синтаксис:

zip(iterable0, iterable1, interable2, …)

Итерируемыми объектами могут быть списки Python , словарь, строки или любой итерируемый объект.

В приведенном выше синтаксисе iterable 0, iterable1 и т. Д.-Это объекты итератора, которые нам нужно объединить с помощью функции zip.

Пример:

Рассмотрим следующий фрагмент кода, в котором у нас есть три итератора, и функция zip объединяет их вместе.

x = ("Joey", "Monica", "Ross")

y = ("Chandler", "Pheobe")

z = ("David", "Rachel", "Courtney")

Выход:

(('Joey', 'Chandler', 'David'), ('Monica', 'Pheobe', 'Rachel'))

В приведенном выше примере мы определили три итератора разной длины. Первые элементы всех из них соединены вместе, аналогично, вторые элементы всех из них соединены вместе.

Но в итераторе y нет третьего элемента , поэтому третьи элементы оставшихся итераторов не включаются в выходной объект.

Вот почему мы ранее говорили, что длина вывода определяется длиной наименьшего итератора, которая в данном случае равна 2.

Функция tuple() преобразует объект zip в кортеж.

Если функции не передаются никакие параметры, будет сгенерирована пустая итерация. Например, результатом печати(кортеж(zip())) будет ():

Преобразование двух списков в словарь

Чтобы преобразовать два списка в словарь с помощью функции zip, вы присоединитесь к спискам с помощью функции zip, как это сделали мы, а затем сможете преобразовать их в словарь.

Предположим, у нас есть два следующих списка:

coin = ('Bitcoin', 'Ether', 'Ripple', 'Litecoin')

code = ('BTC', 'ETH', 'XRP', 'LTC')

Поэтому мы заархивируем список, а затем с помощью функции dict() преобразуем его в словарь:

dict(zip(coin, code))

Функция Zip в трех/нескольких списках

Вы можете передать несколько итераций в функцию zip одного и того же или разных типов. В следующем примере мы определили три списка (все они имеют одинаковую длину), но тип данных элементов в каждом списке отличается.

Пример:

list_a = ['Bitcoin', 'Ethereum', 'Ripple', 'Litecoin', 'Bitcoin-cash']
 
list_b = ['BTC', 'ETH', 'XRP', 'LTC', 'BCH']
 
list_c = ['11605', '271', '0.335', '102', '347']
 
result = zip(list_a, list_b, list_c)
 
print(tuple(result))

Выход:

(('Bitcoin', 'BTC', '11605'), ('Ethereum', 'ETH', '271'), ('Ripple', 'XRP', '0.335'), ('Litecoin', 'LTC', '102'), ('Bitcoin-cash', 'BCH', '347'))