Skip to main content
 首页 » 编程设计

python之在列表 python 中查找包含 0-23 中所有值的列表

2025年05月04日14lyj

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

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