zip()
zip(*iterable),
功能:接收多个可迭代对象,并把每个可迭代对象中的第i个元素组合在一起,形成一个新的元组迭代器
参数:*iterable:任意个数的可迭代对象
返回值:返回一个元素为tuple的迭代器
其中第i个tuple包含来自每个iterable的第i个元素
当所有iterable中最短的一个被耗尽时,迭代器停止迭代
当只有一个iterable时,返回一个单元组的迭代器
zip()与*运算符结合可以用来拆解列表
使用zip()组成新的元组迭代器
v1 = '123456'
v2 = ['a', 'b', 'c', 'd']
v3 = {'A', 'B', 'C'}
w = zip()
print(list(w))
r = zip(v1)
print(list(r))
res = zip(v1, v2, v3)
print(res, type(res))
print(list(res))
[]
[('1',), ('2',), ('3',), ('4',), ('5',), ('6',)]
<zip object at 0x000000D0873E0548> <class 'zip'>
[('1', 'a', 'C'), ('2', 'b', 'B'), ('3', 'c', 'A')]
# for n in res :
# print(n)
'''
('1', 'a', 'A')
('2', 'b', 'B')
('3', 'c', 'C')
'''
# print(next(res))
# print(next(res))
# print(next(res))
'''
('1', 'a', 'C')
('2', 'b', 'A')
('3', 'c', 'B')
zip()与*运算符结合可以用来拆解列表
x = [1, 2, 3]
y = [4, 5, 6]
print(*zip(x,y)) # 组合后形成的多个元组数据
print(zip(x,y)) # 迭代器对象
print(list(zip(x,y)))
x2,y2 = zip(*zip(x,y))
print(x2,y2)
n = zip(zip(x, y))
print(list(n))
(1, 4) (2, 5) (3, 6)
<zip object at 0x000000D0873E0588>
[(1, 4), (2, 5), (3, 6)]
(1, 2, 3) (4, 5, 6)
[((1, 4),), ((2, 5),), ((3, 6),)]