【问题标题】:combine list elements组合列表元素
【发布时间】:2010-08-23 21:21:13
【问题描述】:

如何合并/组合列表的两个或三个元素。例如,如果有两个元素,则列表 'l'

l = [(a,b,c,d,e),(1,2,3,4,5)]

被合并到

[(a,1),(b,2),(c,3),(d,4),(e,5)]

但是如果有三个元素

l = [(a,b,c,d,e),(1,2,3,4,5),(I,II,II,IV,V)] 

列表被转换成

[(a,1,I),(b,2,II),(c,3,III),(d,4,Iv),(e,5,V)]

非常感谢。

【问题讨论】:

  • 您缺少字符串中的引号,而您有 I,II,II,zip(*l) 的操作实际上与转置矩阵相同。
  • list(*zip(*zip(l))) == l 对于任何列表 l ...
  • @Tony,谁说它们是字符串?
  • @Aaron 逻辑简化示例案例由初学者到论坛。罗马序列中的错误与拉丁数字一致:字母序列,拉丁数字序列,罗马数字序列。我不认为它们是变量或函数。

标签: python


【解决方案1】:

使用zip:

l = [('a', 'b', 'c', 'd', 'e'), (1, 2, 3, 4, 5)]
print zip(*l)

结果:

[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]

【讨论】:

  • 感谢您的帮助。顺便说一句,我如何删除内括号:(a,(1,2))所以我得到一个列表:(a,1,2)?再次感谢。
  • @DGT 你可以使用itertools.chain
猜你喜欢
  • 2016-12-19
  • 2021-06-15
  • 1970-01-01
  • 2013-09-17
  • 2016-08-15
  • 2018-11-03
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多