zip()和zip(*)的区别与使用

本文介绍了Python内置函数zip的使用,包括传入一个参数和两个参数的情况。当传入一个参数时,zip函数会聚合所有可迭代对象的元素。而传入两个参数如zip(a, b),则会按位置组合a和b中的元素。需要注意的是,如果a和b的长度不同,结果将基于较短的序列。示例中展示了对二维列表grid使用zip(*grid)进行转置的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接

简介

zip(iteration)

传入一个参数时

zip(iteration): 它的参数为多个可迭代对象,作用是聚合每个可迭代对象中的元素。
从iteration中依次取一个元组,组成一个元组。

传入两个参数时 zip(a,b)

zip()函数分别从a和b依次各取出一个元素组成元组,再将依次组成的元组组合成一个新的迭代器–新的zip类型数据。

  • 注意:
    - 要求a与b的维数相同,当两者具有相同的行数与列数时,正常组合对应位置元素即可;
    - 当a与b的行数或列数不同时,取两者结构中最小的行数和列数,依照最小的行数和列数将对应位置的元素进行组合;这时相当于调用itertools.zip_longest(*iterables)函数。

使用

>>> grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
>>> list(zip(*grid))
[(3, 2, 9, 0), (0, 4, 2, 3), (8, 5, 6, 1), (4, 7, 3, 0)]
>>> list(zip(grid))
[([3, 0, 8, 4],), ([2, 4, 5, 7],), ([9, 2, 6, 3],), ([0, 3, 1, 0],)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值