比较每个项目中具有多个值的两个列表

时间:2020-07-14 10:22:10

标签: python list list-comparison

我有两个列表A = [[1, 2, 3, 4], [5, 6, 7, 8]]和另一个列表B = [[1, 2, 3, 4], [8, 6, 3, 2]]。现在,我想比较AB中的子字符串。如果它们包含相同的子列表,那么我想将它们附加到单独的列表中。我以正常方式比较字符串。但是由于它们在单个项目中包含4个值,因此会引发错误:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()。我找不到任何解决方法。给定示例的预期输出为[[1, 2, 3, 4]]

1 个答案:

答案 0 :(得分:0)

您可以使用普通等式与子列表进行比较,然后将两个列表压缩在一起以比较具有相同索引的项目,例如

[a for a, b in zip(A, B) if a == b] 

将返回AB中相同的所有元素的列表(两者都在相同的索引处)。

我有两个列表A = [[1、2、3、4],[5、6、7、8]]和另一个列表B = [[1、2、3、4],[8、6 ,3,2]]。现在,我想比较A和B中的子字符串。

您有列表列表,此处没有子字符串。

我以正常方式比较字符串。

您在说什么?什么是“比较字符串的正常方法”?

但是由于它们在单个项目中包含4个值,因此会引发错误:具有多个元素的数组的真值是不明确的。

什么错误?不,不是。 python中数组的真值是空数组为假,非空数组为真。同时,两个数组的比较只是字典上的。在那里没有任何歧义。

使用a.any()或a.all()。

这与其他事物有什么关系?

我找不到任何解决方法。

您实际上尝试了什么,这些尝试背后的原因是什么,结果是什么?

相关问题