English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция zip() принимает итеративные объекты (может быть ноль или больше), агрегирует их в кортеж и возвращает.
Синтаксис функции zip():
zip(*iterables)
Параметры | Описание |
---|---|
итеративные объекты | Это могут быть内置ые итеративные элементы (например, список, строка, словарь) или пользовательские итеративные элементы |
Рекомендуется к прочтению: Python итераторы, __iter__ и __next__
Функция zip() возвращает итератор кортежей на основе итеративных объектов.
Если не передается никаких параметров, то zip() возвращает пустой итератор
Если передается один итеративный объект, то zip() возвращает итератор кортежей, в каждом из которых只有一个 элемент.
Если передается несколько итеративных объектов, то zip() возвращает итератор кортежей, в каждом из которых есть элементы из всех итеративных объектов.
Предположим, что два итеративных объекта передаются в zip(); один объект итеративного типа с тремя элементами, другой объект итеративного типа с пятью элементами. Затем, возвращаемый итератор будет содержать три кортежа. Это потому, что итераторы останавливаются, когда исчерпывается наименьший итеративный объект.
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) # Преобразование итератора в множество set result_set = set(result) print(result_set)
Результат вывода
[] {(2, 'two'), (3, 'three'), (1, 'one')}
numbersList = [1, 2, 3] str_list = ['one', 'two'] numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Обратите внимание, что numbersList и numbers_tuple имеют разный размер result = zip(numbersList, numbers_tuple) # Преобразование в множество set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Преобразование в множество set result_set = set(result) print(result_set)
Результат вывода
{(2, 'TWO'), (3, 'THREE'), (1, 'ONE')} {(2, 'two', 'TWO'), (1, 'one', 'ONE')}
Оператор * может использоваться вместе с zip() для распаковки списков.
zip(*zippedList)
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)