Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何找到列表列表中的哪些项与另一个列表相等_Python_List_Numpy_Indexing - Fatal编程技术网

Python 如何找到列表列表中的哪些项与另一个列表相等

Python 如何找到列表列表中的哪些项与另一个列表相等,python,list,numpy,indexing,Python,List,Numpy,Indexing,我有一个列表,如下所示: [[0], [0, 1, 2], [2], [3], [4], [5], [0, 1, 2, 3, 4, 5, 6, 7], [7], [8], [9], [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [11], [11, 12, 13, 14, 15, 16, 17, 18], [13], [14], [14, 15, 16, 17, 18], [16, 17, 18], [17], [17, 18]] 我试图找到列表中最小

我有一个列表,如下所示:

[[0],
[0, 1, 2],
[2],
[3],
[4],
[5],
[0, 1, 2, 3, 4, 5, 6, 7],
[7],
[8],
[9],
[8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
[11],
[11, 12, 13, 14, 15, 16, 17, 18],
[13],
[14],
[14, 15, 16, 17, 18],
[16, 17, 18],
[17],
[17, 18]]
我试图找到列表中最小数量的项目,当连接时,它们等于列表的整个范围。在这种情况下,列表的完整范围如下:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
因此,在这种情况下,列表列表中的这两项将等于整个范围:

[0]
[0, 1, 2]
[2]
[3]
[4]
[5]
---> [0, 1, 2, 3, 4, 5, 6, 7]
[7]
[8]
[9]
---> [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[11]
[11, 12, 13, 14, 15, 16, 17, 18]
[13]
[14]
[14, 15, 16, 17, 18]
[16, 17, 18]
[17]
[17, 18]

单向使用
itertools.排列

from itertools import permutations, chain

starget = sorted(target)
for i in range(2, len(target)):
    for perm in permutations(l, i):
        if sorted(chain(*perm)) == starget:
            print(i, perm)
            break
    break
输出:

2 ([0, 1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18])

谢谢,但我不明白,这是怎么回事?什么是
target
?不清楚上一个示例代表什么。你能解释一下你的预期产出吗?是不是
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
?预期输出应该是
[[0,1,2,3,4,5,6,7],[8,9,10,11,12,13,14,15,16,17,18]