Python 如何比较不在另一个二维列表中的二维列表?
我有两个二维的列表。我想比较不在df1中的df0。这是我下面的代码,但它只给我匹配的值 例如:Python 如何比较不在另一个二维列表中的二维列表?,python,python-3.x,list,multidimensional-array,Python,Python 3.x,List,Multidimensional Array,我有两个二维的列表。我想比较不在df1中的df0。这是我下面的代码,但它只给我匹配的值 例如: df0=[[2, 4, 7, 13, 14], [3, 5, 8, 13, 14], [6, 9, 10, 13, 14]] df1=[[4, 7, 9, 12], [12, 15, 17, 18, 19], [13, 22, 23, 24, 30], [2, 5, 7, 8, 9], [6, 7, 12, 14, 15]] df3= l
df0=[[2, 4, 7, 13, 14],
[3, 5, 8, 13, 14],
[6, 9, 10, 13, 14]]
df1=[[4, 7, 9, 12],
[12, 15, 17, 18, 19],
[13, 22, 23, 24, 30],
[2, 5, 7, 8, 9],
[6, 7, 12, 14, 15]]
df3= list(enumerate([[list(set(x) & set(y))
for x in df0
if x not in df1]
for y in df1]))
我希望我的结果是:
[[[9, 12], [], [22,23,24,30], [5,8,9], [6,12,15]],
[[], [], [22,23,24,30], [2,7,9], [6,7,12,15]],
[[], [], [22,23,24,30], [], [7,12,15]]]
通过应用此算法,可以获得您想要的结果:
[ [ list(sorted(set(x) - set(y)))
if set(y) & set(x)
else []
for x in df1 ]
for y in df0 ]
但如果这有意义的话,那就取决于你:)[122,23,24,30]来自哪里?你发布的结果是否与你描述的问题有关?
df1
不包含122
,Chris88。@Chris88,不清楚哪种算法可以根据给定的数据生成这样的结果,但绝对不是比较。看起来OP是在寻找set.difference
,[[list(set(x).difference(y)]用于df1中的x]用于df0中的y]
我怀疑,虽然预期结果部分正确,但正如我现在看到的,也不完全正确。最后一排不一样。但也许作为一个建议,它有助于理解OP的含义。这个锅非常感谢你。另外,你如何把enumerate放在你的列表中,以及你在评论中的理解。