Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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_Python 3.x_List_Multidimensional Array - Fatal编程技术网

Python 如何比较相同值的多个二维列表?

Python 如何比较相同值的多个二维列表?,python,python-3.x,list,multidimensional-array,Python,Python 3.x,List,Multidimensional Array,我正在尝试在多个列表之间创建连接或模式。例如,如果列表“C”的值与“D”的值相同,而D的值与“B”的值相同,我希望使用新变量返回匹配值,并返回不在匹配值中的值,然后创建另一个变量。如果可以的话,你能用列表理解来解决这个问题吗?另一个例子,这是我的清单 B = [[3, 21, 27], [3, 7, 21, 27], [3, 7, 21, 27], [3, 7, 21, 27], [3, 21, 27], [7, 21, 27]] C = [[[2, 7, 8], [4, 13, 1

我正在尝试在多个列表之间创建连接或模式。例如,如果列表“C”的值与“D”的值相同,而D的值与“B”的值相同,我希望使用新变量返回匹配值,并返回不在匹配值中的值,然后创建另一个变量。如果可以的话,你能用列表理解来解决这个问题吗?另一个例子,这是我的清单

B = [[3, 21, 27], [3, 7, 21, 27], [3, 7, 21, 27],
     [3, 7, 21, 27], [3, 21, 27], [7, 21, 27]]

C = [[[2, 7, 8], [4, 13, 15]], 
     [[2, 5, 6], [8, 11, 12]], [[4, 6, 9], [6, 10]]]

D = [[2, 3, 4, 5, 6], [2, 3, 7, 8, 9], [4, 5, 7, 8, 10],
     [4, 6, 10, 16, 20], [2, 3, 12, 17, 20], [7, 11, 16, 17, 20]]
我希望我的结果是:

[[[[2, 3], [8, 2, 7, 3], [], [], [2, 3], []],[[3,4], [], [7, 4], [], [3], [7]],[[3, 2, 5, 6], [3, 7, 2 ], [7, 5], [], [3, 2], [7]],[[3], [3, 7, 8], [], [], [3, 12], [7, 11]],[[3, 4, 6], [3, 9], [], [], [], []],[], [], [7, 10], [], [], []]]]
如果可能的话,我想删除空白

[[[[2, 3], [8, 2, 7, 3], [2, 3]],[[3,4],[7, 4],[3], [7]],[[3, 2, 5, 6], [3, 7, 2 ], [7, 5],[3, 2], [7]],[[3], [3, 7, 8],[3, 12],[7, 11]],[[3, 4, 6],[3, 9]],[[7, 10],]]]
我已经尝试使用下面的代码,它的工作,但只有当我试图匹配“B”到“D”。我想让“C”和“B”匹配“D”


E=([[[list(set(x)和set(y))代表D中的x]代表B中的y]])

如果您想要唯一的值,set确实是一种方法

添加一个联合步骤可以完成以下工作:

(set(B) | set(C)) & set(D)

值得一试吗?

你能提供一个简单明了的例子吗?C、B、D的值和预期的输出是多少?对不起,忘了放那个。它已经更新了。为了以防万一,这里是我的列表
B=[[3,21,27],[3,7,21,27],[3,7,21,27],[3,21,27],[7,21,27]]C=[[2,7,8],[4,13,15],[2,5,6],[8,11,12],[4,6,9],[6,10]]D=[2,3,4,5,6],[2,3,7,8,9],[4,5,7,10],[4,16,17,17]
您的列表C比其他列表C多了一个嵌套级别,对吗?对。它还能工作吗?或者有其他的解决方法吗?C有另一个列表级别,确实是一个问题。按照您的模板,此示例使用两个级别的列表
E=([[[list(set(x)| set(y))表示B中的x中的y中的C]])
F=([[[list(set(x)&set(y))表示E中的x中的y]表示D中的y]])