我有一个清单清单。这些列表中的列表如下所示:
[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/