我有一个清单清单。这些列表中的列表如下所示:

[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]


每个小清单都有0到23之间的8个值,​​并且小清单内没有重复的值。

我现在需要的是存储值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/

10-16 06:23