python3 zip()

zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象.

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表;
 
这个可迭代对象可以使用循环的方式列出其元素

若多个可迭代对象的长度不一致,则所返回的列表与长度最短的可迭代对象相同.

用法1:用两个列表生成一个zip对象

例1

a1=[1,2,3]
a2=[4,5,6]
a3=[7,8,9]
a4=[“a”,“b”,“c”,“d”]
zip1=zip(a1,a2,a3)
print(zip1)
<zip object at 0x7f5a22651c08>

for i in zip1:
… print(i)

(1, 4, 7)
(2, 5, 8)
(3, 6, 9)
例2

zip2=zip(a1,a2,a4)
print(zip2)
<zip object at 0x7f5a22651d48>

for j in zip2:
… print(j)

(1, 4, ‘a’)
(2, 5, ‘b’)
(3, 6, ‘c’)
例3

zip3=zip(a4)
print(zip3)
<zip object at 0x7f5a22651d08>

for i in zip3:
… print(i)

(‘a’,)
(‘b’,)
(‘c’,)
(‘d’,)
例4

zip4=zip(*a4 *3)

print(zip4)
<zip object at 0x7f5a22651f08>

for j in zip4:
… print(j)

(‘a’, ‘b’, ‘c’, ‘d’, ‘a’, ‘b’, ‘c’, ‘d’, ‘a’, ‘b’, ‘c’, ‘d’)
用法2:二维矩阵变换(矩阵的行列互换)

l1=[[1,2,3],[4,5,6],[7,8,9]]
print([[j[i] for j in l1] for i in range(len(l1[0])) ])
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

zip(*l1)
<zip object at 0x7f5a22651f88>

for i in zip(*l1):
… print(i)

(1, 4, 7)
(2, 5, 8)
(3, 6, 9)

(3).示例3:

x = [1, 2, 3]
x = list(zip(x))
print(x)
#输出结果:[(1,), (2,), (3,)]

(4).示例4:

x = list(zip())
print(x)
#输出结果:[]

(5).示例5:

复制代码
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = list(zip(x, y, z))
print(xyz )
u = list(zip(*xyz))
print(u)
#输出结果:
#[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
#[(1, 2, 3), (4, 5, 6), (7, 8, 9)

猜你喜欢

转载自blog.csdn.net/weixin_44088837/article/details/86691960