Python zip函数的多参数用法

Python zip函数的多参数用法


zip函数我个人是这么理解的,假如有多个参数,每个参数都是一个列表,列表可以不等长,那么我把每个列表看成一根葱,我现在要切葱花,把这一根根的葱从上到下叠在一起,头部对齐,用菜刀一刀一刀从前往后切。切到最短的一根葱没了为止。其它没切完的葱就不要了。最终得到每一刀从上到下的葱花,这每一刀的葱花本身是一个迭代器,需要循环读取。

a=[1,2,3,4,5]
b=[1,2,3,4]
c=[1,2,3,4]
result=zip(a,b,c)
print(result)
cut=1
for i in result:
    print('第{}刀:'.format(cut),i)
    cut+=1   
#结果可知没有第5刀,只有4刀
<zip object at 0x0000019516C21988>1刀: (1, 1, 1)2刀: (2, 2, 2)3刀: (3, 3, 3)4刀: (4, 4, 4)

需要注意的一点是,当zip传参时,想用1个参数代替多个多个参数需要使用*parm格式:

a=[1,2,3,4,5]
b=[1,2,3,4]
c=[1,2,3,4]
# result=zip(a,b,c)
d=[a,b,c]
result=zip(*d)  #或者result=zip(*(a,b,c))

print(result)
cut=1
for i in result:
    print('第{}刀:'.format(cut),i)
    cut+=1
#结果是一样的。

额外提一点,tensorflow里的Dataset.zip((x,y))有点类似zip(*(x,y))的效果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythonzip()函数用于将多个可迭代对象(例如列表、元组)作为参数,返回一个包含这些对象中对应元素组成的元组的迭代器。 zip()函数的返回值是一个可迭代对象,可以使用list()函数将其转换为列表。需要注意的是,zip()函数返回的可迭代对象只能进行一次迭代遍历,第二次遍历就是空的。 使用zip()函数可以实现以下几个功能: 1. 将多个序列按照对应位置的元素进行组合,形成一个新的元组。 2. 迭代多个序列,同时获取对应位置的元素进行处理。 3. 对二维矩阵进行行列转置。 下面是几个zip()函数的应用示例: 1. 将两个列表按照对应位置的元素进行组合: ``` a = [1, 2, 3] b = [4, 5, 6] ab = zip(a, b) print(list(ab)) # [(1, 4), (2, 5), (3, 6)] ``` 2. 使用zip()函数同时迭代多个序列: ``` name = ('jack', 'alex', 'sony', 'joey') age = (25, 28, 21, 30) for a, n in zip(name, age): print(a, n) ``` 3. 对二维矩阵进行行列转置: ``` a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(list(map(list, zip(*a)))) # [[1, 4, 7], [2, 5, 8], [3, 6, 9]] ``` 需要注意的是,zip()函数参数可以有任意多个,每个参数可以是不同长度的可迭代对象。当参数中的可迭代对象长度不一致时,zip()函数将以最短的可迭代对象为准进行组合。 总结一下,zip()函数是用于将多个可迭代对象进行组合的函数,可以用于同时迭代多个序列或对二维矩阵进行行列转置。需要注意的是,zip()函数返回的可迭代对象只能进行一次遍历。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Pythonzip 函数用法](https://blog.csdn.net/weixin_30810583/article/details/99390525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python教程:zip 函数用法](https://blog.csdn.net/qdPython/article/details/123353945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值