0

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

4

1 回答 1

0

您可以只使用普通相等来比较子列表,并将两个列表压缩在一起以比较同一索引处的项目,例如

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

A将返回在and中相同的所有元素的列表B(并且在两者中的相同索引处)。

我有两个列表 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() 。

这与其他任何事情有什么关系?

我找不到任何方法来解决这个问题。

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

于 2020-07-14T10:30:24.437 回答