python3高级操作:zip ()函数使用

刚刚使用Python进行数据分析,分享一些概念和想法,希望可以大家一起讨论,如果理解或者表达有不准确的地方,请多多指点,不吝赐教,非常感谢~~

zip()函数是将两个可迭代的对象作为参数,一一对应,返回由这些元组组成的对象。
可以遍历但是不可以取值,如果想取值就要结合参数的数据类型,将返回的对象list()化或者转化成字典{}等。

所以要注意的是:

  1. 是两个可迭代的对象
  2. 返回的也是一个对象,所以如果打印zip()结果,返回的是对象存储的地址

这样做的好处是节约了不少的内存。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压还原(此处不做解释)。

drinks = ["espresso", "chai", "decaf", "drip"]
caffeine = [64, 40, 0, 120]
zipped_drinks=zip(drinks,caffeine)

print(zipped_drinks)		# 结果是对象存储地址 <zip object at 0x1a22fe4248>
print(type(zipped_drinks))		# 结果是 <class 'zip'>
for i in zipped_drinks:		** 可以遍历** 
    print(i)
for i,m in zipped_drinks:		**可以遍历**
	print(i,m)

--------------------------------------------
# 使用i遍历的结果,是作为整体输出:
('espresso', 64)
('chai', 40)
('decaf', 0)
('drip', 120)
# 使用i,m遍历结果,是作为单个“元素”输出
espresso 64
chai 40
decaf 0
drip 120

一定要注意,无论什么形式输出,都只能遍历而已,无法单独取值出来!!!

针对想取值的问题,我们可以使用 list() 转换来输出列表或者使用字典。至于到底是序列化还是转成字典,要根据zip中的元素的数据类型而定。下面以转换成字典为例,序列化方式请详见python3基础语法——对序列基本操作。

# 将 zip转换成字典类型
drinks_to_caffeine={key:value for key,value in zipped_drinks}
print(type(drinks_to_caffeine))			# 结果 <class 'dict'>
print(drinks_to_caffeine)				**结果为 {}**

此时,我们可以看到数据类型转换成字典,但是字典无法直接打印字典实例,具体如何“打印字典元素”详见《python3基础语法——对字典基本操作(创建/添加/修改/取值/删除)》:https://mp.csdn.net/mdeditor/94142002#

** 需要对比:字符串.format()方法和直接使用字符串相加
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值