zip
Возвращает итератор по кортежам, где i-тый кортеж содержит i-тый элемент каждой из указанных последовательностей.
zip(*iterables)
-> +py3.0 iterator -py3.0 list
iterables -- Итерируемые объекты, элементы которых следует упаковать в кортежи. Если передана одна последовательность, вернётся итератор по кортежам, состоящим из единственного элемента. Если последовательности не переданы, возвращается пустой итератор.
Итератор останавливается, когда исчерпана кратчайшая из последовательностей.
Гарантируется вычисление слева направо, что делает возможным следующую идиому кластеризации данных по группам n-длины —
В сочетании с оператором * функция может быть использована для распаковки списка:
Python 2
Функция возвращает список кортежей.
+py2.4 Ранее функция требовала хотя бы одного аргумента и возбуждала TypeError, вместо возврата пустого списка.
list(zip([1, 2, 4], [4, 5], [5, 7]))
# [(1, 4, 5), (2, 5, 7)]
Гарантируется вычисление слева направо, что делает возможным следующую идиому кластеризации данных по группам n-длины —
zip(*[iter(s)] * n)
: seq = [1,2,3,4,5,6]
list(zip(*[iter(seq)] * 2)) # [(1, 2), (3, 4), (5, 6)]
list(zip(*[iter(seq)] * 3)) # [(1, 2, 3), (4, 5, 6)]
В сочетании с оператором * функция может быть использована для распаковки списка:
first, second = zip(*[(1, 4), (2, 5), (3, 6)])
# (1, 2, 3), (4, 5, 6)
Внимание
Виду того, что длина кортежей соответствует длине кратчайшей из переданных последовательностей, используйте функцию, когда возможность потери данных из более длинных последовательностей допустима. В противном случае следует использовать itertools.zip_longest.
Python 2
Функция возвращает список кортежей.
+py2.4 Ранее функция требовала хотя бы одного аргумента и возбуждала TypeError, вместо возврата пустого списка.
Синонимы поиска: zip
В разделе «Встроенные функции»:
abs
all
any
apply
ascii
bin
callable
chr
classmethod
cmp
compile
delattr
dir
divmod
enumerate
eval
exec
filter
format
getattr
globals
hasattr
hash
help
hex
id
input
isinstance
issubclass
iter
len
locals
map
max
min
next
oct
open
ord
pow
print
raw_input
reduce
repr
reversed
round
setattr
sorted
staticmethod
sum
super
unichr
vars
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.