【问题标题】:how to get sequences of list of tuples [closed]如何获取元组列表的序列[关闭]
【发布时间】:2019-06-25 10:26:41
【问题描述】:

鉴于这是输入

[(A,1),(A,2),(B,0),(C,2),(C,3)]

输出应该是:

[[(A,1),(B,0),(C,2)],[(A,2),(B,0),(C,2)],[(A,1),(B,0),(C,3)],[(A,2),(B,0),(C,3)]]

及其排列

【问题讨论】:

  • 请描述您到目前为止所做的事情以及问题所在。
  • 你的输出不是一个有效的列表
  • 输出组的顺序重要吗?

标签: arrays python-3.x combinations permutation


【解决方案1】:

尝试使用groupbyproduct

from itertools import groupby, product

input = [("A", 1), ("A", 2), ("B", 0), ("C", 2), ("C", 3)]

groups = groupby(input, key=lambda x: x[0])

output = [list(p) for p in product(*[item for item in (list(i) for g, i in groups)])]

print(output)

输出:

[[('A', 1), ('B', 0), ('C', 2)], [('A', 1), ('B', 0), ('C ', 3)], [('A', 2), ('B', 0), ('C', 2)], [('A', 2), ('B', 0), ( 'C', 3)]]

【讨论】:

  • 输出与问题中的内容不匹配
  • 仅仅因为产品输出元组而不是列表?好吧,我编辑将它们投射到一个列表中......
  • 哦,顺序也不一样……
猜你喜欢
  • 2013-08-21
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 2022-08-14
相关资源
最近更新 更多