python中的zip()方法

首先,zip()函数是一个迭代器(即遍历的意思),会将多个对象数据对应位置的数据放在元组里并返回一个对象。

data1 = [1, 2, 3, 4]
data2 = ["a", "b", "c", "d"]
data = zip(data1, data2)
print(data)
print(type(data))

以下是代码的输出结果:

<zip object at 0x000001796DD95280>
<class 'zip'>

出现 zip object at ...可以理解为zip()方法是从每个对象的第0个位置开始遍历,首先将每个对象的第0个位置的数据取出来放在一个元组对象里,并将其放在zip对象里(节省内存),然后继续遍历下一个位置的数据(即迭代器),需要查看内容时可以用list()方法将其转化为列表对象。

data1 = [1, 2, 3, 4]
data2 = ["a", "b", "c", "d"]
data = list(zip(data1, data2))
print(data)
print(type(data))

以下是代码的输出结果:

[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
<class 'list'>

其次,遍历的数据类型可以是列表,元组以及字典的组合,但是对字典对象进行遍历时只会取字典键值对中的"键",而"值"则会丢弃。

data1 = [1, 2, 3]
data2 = ("a", "b", "c")
data3 = {"x": 7, "y": 8, "z": 9}
data = list(zip(data1, data2, data3))
print(data)

以下是代码的输出结果:

[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]

另外,当遍历的对象长短不一时,则在遍历完长度最短对象的时候就会停止遍历,其他长度更长对象的未遍历到的数据则会"丢弃"。

data1 = [1, 2, 3, 4, 5]
data2 = ("a", "b", "c", "d")
data3 = {"x": 7, "y": 8, "z": 9}
data = list(zip(data1, data2, data3))
print(data)

以下是代码的输出结果:

[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]

最后,zip(*)可以理解为zip()方法的逆过程,但是返回的是一个元组对象。

data1 = [1, 2, 3]
data2 = ("a", "b", "c")
data3 = {"x": 7, "y": 8, "z": 9}
data = zip(data1, data2, data3)
m, n, k = zip(*data)
print(m, n, k)

以下是代码的输出结果:

(1, 2, 3) ('a', 'b', 'c') ('x', 'y', 'z')
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值