【Python】zip()函数的用法

文章讲述了Python中zip()函数如何对二维列表进行元素组合,以及map()函数的解构特性及其在zip()中的使用,展示了它们在列表操作中的类似旋转和镜像效果。
摘要由CSDN通过智能技术生成

对于一个二维列表或者元组 l ,*l 表示结构之

l = [[1,2,3],[4,5,6]]
print(*l)
# 输出[1, 2, 3] [4, 5, 6]

zip函数内的参数一定得是可以迭代的

l = [1,3,5]
print(zip(*l))
# 报错:'int' object is not iterable,int对象不是可迭代的

zip()函数表示将这些解构出来的元素通过n(n为解构后每个元素的长度)个为一组的组合的方式以元组的形式组合起来,输出一个zip对象

print(zip(*a))
# 输出<zip object at 0x000001D5F7553E40>

print(type(zip(*a)))
# 输出<class 'zip'>

一般以列表的形式展示出来

print(list(zip(*l)))
# 输出[(1, 4), (2, 5), (3, 6)]

# l = l = [[1,2],[3,4],[5,6]]
# 输出[(1, 3, 5), (2, 4, 6)]

这相当于是原二维列表顺时针旋转后的镜像

如果想让新列表中的元素以列表形式存在,可以通过以下方法

print(list(map(list,zip(*l))))
# 输出[[1, 4], [2, 5], [3, 6]]

拓展:

map函数也有类似于解构的作用,但不同于 *l 的是,map函数输出了一个map对象,需要再次解构一次才能用于zip()函数(map对象是一个整体,只包含一个可以迭代的对象,*l解构后包含多个可迭代的对象)

l = [[1,2,3],[4,5,6]]

print(map(list,l))
# 输出<map object at 0x0000020FB228D3F0>

print(list(map(list,l)))
# 输出[[1, 2, 3], [4, 5, 6]]

print(list(zip(map(list,l))))
# 输出[([1, 2, 3],), ([4, 5, 6],)]
# map对象是一个整体,只包含一个可以迭代的对象
# *l解构后包含多个可迭代的对象

print(list(zip(*map(list, l))))
# 输出[(1, 4), (2, 5), (3, 6)]


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值