使用 `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))
缺乏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))