Функция zip() в Python

Python 内置函数Встроенные функции Python


Описание

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

Если количество элементов в каждом итераторе не совпадает, длина возвращаемого списка равна длине самого короткого объекта. С помощью оператора * кортежи можно распаковать в списки.

Разница между методом zip в Python 2 и Python 3: в Python 3.x для уменьшения потребления памяти zip() возвращает объект. Чтобы отобразить список, нужно вручную преобразовать его с помощью list().

Если вам нужно понять применение в Python 3, можете обратиться кPython3 zip()。

Синтаксис

Синтаксис zip:

zip([iterable, ...])

Описание параметра:

  • iterable -- один или несколько итераторов;

Возвращаемое значение

Возвращает список кортежей.

Примеры

Следующие два примера соответственно демонстрируютPython2.xиPython3.x zipиспользование:

Пример (Python 2.0+)

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # Упаковать в список кортежей
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # Количество элементов такое же, как в самом коротком списке
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # В отличие от zip, *zipped можно понимать как распаковку, возвращающую формат двумерной матрицы
[(1, 2, 3), (4, 5, 6)]

Пример (Python 3.0+)

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # Возвращает объект
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() преобразует в список
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))              # Число элементов равно числу элементов самого короткого списка
[(1, 4), (2, 5), (3, 6)]

>>> a1, a2 = zip(*zip(a,b))          # В отличие от zip, zip(*) можно понимать как распаковку, возвращающую формат двумерной матрицы
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>

Python 内置函数Встроенные функции Python

Другие расширения