为了账号安全,请及时绑定邮箱和手机立即绑定

转置/解压函数(ZIP的逆)?

转置/解压函数(ZIP的逆)?

千巷猫影 2019-06-09 16:25:51
转置/解压函数(ZIP的逆)?我有一个包含2项元组的列表,我想将它们转换为2个列表,其中第一个列表包含每个元组中的第一个项目,第二个列表包含第二个项目。例如:original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]# and I want to become...result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])有内置函数吗?
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

如果您有不同长度的列表,您可能不想使用zip作为Patricks的答案。这样做是可行的:

>>> zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4)])[('a', 'b', 'c', 'd'), (1, 2, 3, 4)]

但是,对于不同的长度列表,zip将每一项截断为最短列表的长度:

>>> zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', )])[('a', 'b', 'c', 'd', 'e')]

您可以使用没有函数的map来用None填充空结果:

>>> map(None, *[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', )])[('a', 'b', 'c', 'd', 'e'), (1, 2, 3, 4, None)]

但是zip()稍微快一些。


查看完整回答
反对 回复 2019-06-09
  • 3 回答
  • 0 关注
  • 478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信