Функция zip() в 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+)
>>> 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+)
>>> 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