使用 `enumerate(arr)` 之类的函数到 return 数组数组

Using `enumerate(arr)` like function to return array of arrays

缺乏Python 专业知识。我知道使用 for 循环是多么容易,但我对 python 的功能很好奇。

我有两个具有可比较字符串的并行数组。我想枚举第一个字符串,这样我就可以保存索引,然后我可以用它来进行比较。但是,我还需要使用两个参数对结果数组执行 lambda 函数。

filter(lambda x,y: y == arr2[x], list(enumerate(arr1))

lambda 函数失败,因为枚举了 returns 元组列表,并且 lambda 函数将它们解释为单个参数。

是否有 enumerate 的内联替代方案可以提供我想要的结果? (数组的数组)

当前输出: [(0,value),(1,value),(2,value)...]

期望输出: [[0,value],[1,value],[2,value]...]

使用 zip 函数是可能的。 zip built-in 函数文档

arr1 = [1, 2, 4]
arr2 = [1, 3, 4]
filter(lambda p: p[0] == p[1], [pair for pair in zip(arr1, arr2)])

zip returns 可迭代的包含具有相同索引的元素值的对。

更新:是的,解决方案可能会被简化

filter(lambda p: p[0] == p[1], zip(arr1, arr2))