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

标签 python list

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

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

相关文章:

python - PyCharm 在哪里存储编译后的文件?

java - 有效的 Java 项目 17 : How can overriding removeRange() improve performance?

c++ - 函数中模板类的返回值不能去掉 "warning not all control paths return a value"

MySQL:检查子串序列

python - 将元素合并在一起的正则表达式

python - 如何在 Python 中指定文字生成器类型?

来自 Cron 的 Python 脚本

java - 如何过滤 2 个巨大的列表,其中包含数百万个具有相同 ID 的项目

python - 从列表元素中删除数字

python - 根据索引获取行,然后创建另一个单独的数据框