我有一个列表列表。这些列表中的列表如下所示:
[0,2,5,8,7,12,16,18], [0,9,18,23,5,8,15,16], [1,3,4,17,19,6,13,23],
[9,22,21,10,11,20,14,15], [2,8,23,0,7,16,9,15], [0,5,8,7,9,11,20,16]
每个小列表有 8 个值,从 0 到 23,小列表中没有重复的值。
我现在需要的是存储了值 0-23 的三个列表。可能有几个组合来完成它,但我只需要一个。
在这种特殊情况下,输出将是:
[0,2,5,8,7,12,16,18], [1,3,4,17,19,6,13,23], [9,22,21,10,11,20,14,15]
我想对订单做点什么,但我不是 python 专业人士,所以我很难处理列表中的所有列表(比较所有列表)。
感谢您的帮助。
最佳答案
以下似乎有效:
from itertools import combinations, chain
lol = [[0,2,5,8,7,12,16,18], [0,9,18,23,5,8,15,16], [1,3,4,17,19,6,13,23], [9,22,21,10,11,20,14,15], [2,8,23,0,7,16,9,15], [0,5,8,7,9,11,20,16]]
for p in combinations(lol, 3):
if len(set((list(chain.from_iterable(p))))) == 24:
print(p)
break # if only one is required
这会显示以下内容:
([0, 2, 5, 8, 7, 12, 16, 18], [1, 3, 4, 17, 19, 6, 13, 23], [9, 22, 21, 10, 11, 20, 14, 15])
关于python - 在列表 python 中查找包含 0-23 中所有值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34308678/