python: zip 和unzip用法

a = [1, 2]
b = [1, 3]
zipped = zip(a, b)
zipped
<zip at 0xa857448>
list(zipped)
[(1, 1), (2, 3)]
c, d = zip(*zip(a, b))
c, d
list(c), list(d)
([1, 2], [1, 3])
Python中,可以使用zip函数将多个iterables(可迭代对象)聚合到一起。但是,如果要将这些聚合的对象再解开,即实现unzip的功能,可以使用以下几种方法: 方法一:使用zip函数和*运算符进行解压缩 可以使用*运算符,将一个由zip()生成的zip object传递给zip(),即可实现将zip object解压缩成各个iterables。例如: ``` zipTriple = zip(weekdays, weekdays_chinese, weekdays_japanese) wk1, wk2, wk3 = zip(*zipTriple) ``` 这样,wk1将包含weekdays的元素,wk2将包含weekdays_chinese的元素,wk3将包含weekdays_japanese的元素。 方法二:使用itertools模块的zip_longest()方法 如果要解压缩的iterables的长度不同,可以使用itertools模块中的zip_longest()方法。这个方法可以弥补zip()在处理不等长iterables时的短板。例如: ``` import itertools as it fruits = ['apple', 'banana', 'melon', 'strawberry'] prices = [10, 20, 30] print(list(it.zip_longest(fruits, prices))) ``` 这样,可以将fruits和prices解压缩成一个列表,对应位置上的元素如果不足,则用None填充。 方法三:如果zip()的输入参数只有一个iterables或者没有iterables,可以使用zip()函数来进行解压缩。例如: ``` a = [1,2,3,4,5] print(list(zip(a))) # 解压缩一个iterables print(list(zip())) # 解压缩空iterables ``` 这样,第一个print语句将输出[(1,), (2,), (3,), (4,), (5,)],第二个print语句将输出[]。 所以,以上就是在Python中进行unzip操作的几种方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python zip, unzip, zip_longest的用法](https://blog.csdn.net/chenxy_bwave/article/details/120307490)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值