我有两个列表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]]
问问题
434 次
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 回答