python zip函数_python的zip函数及*解压详解

在python3中,zip()函数返回一个可迭代对象,对象中的每个值是iterable中元素的索引及值组成的元组。这样做的好处是节约内存。在 Python 2.x 中zip() 返回的是一个列表。

zip函数语法如下:

zip([iterable, ...])

参数说明:

iterable -- 一个或多个迭代器;

我们可以使用 list() 把结果转换为列表输出。

(注意点1:如果你把可迭代对象循环输出后再list就是空列表)

(注意点2:如果你对可迭代对象使用了list,再循环输出可迭代对象就无数据了

# -*- coding: utf-8 -*-

a = [1,2,3]

b = [4,5,6]

res = zip(a,b)

print(res)

for i in res:

print(i)

# 此时列表是空

print(list(res))

(1, 4)

(2, 5)

(3, 6)

[]

# -*- coding: utf-8 -*-

a = [1,2,3]

b = [4,5,6]

res = zip(a,b)

list(res)

# 以下没有输出了

for i in res:

print(i)

如果各个迭代器的元素个数不一致,哪个元素个数少就按照谁的来。利用*号操作符,可以将元组解压为列表。

# -*- coding: utf-8 -*-

a = [1,2,3]

b = [4,5,6]

c = [7,8,9,10]

res = zip(a,b,c)

print(list(res))

# 没有输出了

for i in res:

print(i)

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

# -*- coding: utf-8 -*-

a = [1,2,3]

b = [4,5,6]

a1,b1 = zip(*zip(a,b))

print(list(a1))

print(list(b1))

[1, 2, 3]

[4, 5, 6]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值