python - 将嵌套列表组合成子列表的唯一组合

标签 python python-3.x list nested combinations

我有一个嵌套的列表:

[[[a, [a1, a2, a3]],[b, [b1, b2, b3]], [c, [c1, c2, c3]]]

我怎样才能把它变成初始元素的独特组合,形式如下:

[[[a, b],[a1, a2, a3, b1, b2, b3]],[[a,c],[a1, a2, a3, c1, c2, c3]], [[b,c],[b1, b2, b3, c1, c2, c3]]]

我知道有很多列表,但我需要那种形式的列表。我不知道从哪里开始。

最佳答案

您可以使用itertools.combinations:

from itertools import combinations
l = [['a', ['a1', 'a2', 'a3']],['b', ['b1', 'b2', 'b3']], ['c', ['c1', 'c2', 'c3']]]
print([[[i for i, _ in c], [i for _, l in c for i in l]] for c in combinations(l, 2)])

这个输出:

[[['a', 'b'], ['a1', 'a2', 'a3', 'b1', 'b2', 'b3']], [['a' , 'c'], ['a1', 'a2', 'a3', 'c1', 'c2', 'c3']], [['b', 'c'], ['b1', ' b2', 'b3', 'c1', 'c2', 'c3']]]

关于python - 将嵌套列表组合成子列表的唯一组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52831823/

相关文章:

python - 如何从特殊点切割字符串

python - 如何转换每个 key :value pair in a dictionary to flat rows in a 2D array?

python - 在 Python 中按属性获取对象列表中的索引

python - PySide6:加载共享库时出错:libQt6DesignerComponents.so.6:无法打开共享对象文件

python - 在Model的外部类方法中访问peewee的Meta子类

python - 处理 NaN 进行距离计算时出现问题?

Python,tictactoe,语法错误

c# - 在 C# 中无限旋转列表中的 3 个项目的最佳方法是什么

python - 列表和 While 循环

python - Django:从中间件获取页面标题