在执行下面的代码时,我想跟踪索引,因为之后我需要对结果列表进行排序:
my_list = np.array([[[5,8], [2,2], [9,5]], [[5,8], [9,5], [2,2]], [[9,5], [5,8], [2,2]]])
result = list(map(lambda x: myFunction(list(map(lambda x: x[0:], x))), my_list))
我试着使用enumerate(my_list)
,但我得到了错误:
result = list(map(lambda x: myFunction(list(map(lambda x: x[0:], x))), enumerate(my_list)))
TypeError: 'int' object is not subscriptable
如果我使用带有enumerate的for循环,它可以正常工作,但我想知道是否有其他使用map
的解决方案。
Enumerate生成一个值对序列,因此您的lambda函数需要解压缩值对:
尝试:
result = list(map(lambda x: myFunction(list(map(lambda y: y[0], y[1][0:], y[1]))), enumerate(my_list)))
其中:
- y是枚举映射的每次迭代上的对(i,x(
- 我是索引
- x是my_list的第i个子列表
lambda函数需要对y进行解包才能将i和x返回
带有:i=y[0]和x=y[1](
由于这现在将三元组发送到myFunction,您也应该更新它以接受三元组。