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