【zip()函数的用法及疑惑】

zip()函数的用法及疑惑

cate = ['客户A', '客户B', '客户C', '客户D', '客户E', '其他客户']
data = [153, 124, 107, 99, 89, 46]
x = [list(z) for z in zip(cate, data)] #列表
y = [z for z in zip(cate, data)]      #元祖
print(x)
print(type(x)) # <class 'list'>
print(y)
print(type(y)) # <class 'list'>
print(x==y) # False

输出结果:

[['客户A', 153], ['客户B', 124], ['客户C', 107], ['客户D', 99], ['客户E', 89], ['其他客户', 46]]
<class 'list'>
[('客户A', 153), ('客户B', 124), ('客户C', 107), ('客户D', 99), ('客户E', 89), ('其他客户', 46)]
<class 'list'>
False

同时

m = zip(cate, data)
# <zip object at 0x00000000038D3B40> 输出对象的内存位置而不打印出来
print(m)  
print(list(m))  
print(list(m)==y)

输出

zip object at 0x0000000003883500>
[('客户A', 153), ('客户B', 124), ('客户C', 107), ('客户D', 99), ('客户E', 89), ('其他客户', 46)]
<class 'list'>
False

为什么list(m)和y不相同??输出一致,类型也一致!print(list(m)==y)却是False!

n = [zip(cate,data)] 
print(n)         # [<zip object at 0x00000000038D3A40>]
print(type(n))  # <class 'list'>
print(list(n))
print(type(list(n))) # <class 'list'>
print(list(n)==n)  # True

输出:

[<zip object at 0x00000000038D9980>]
<class 'list'>
[<zip object at 0x00000000038D9980>]
<class 'list'>
True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值