繁体   English   中英

Python - reduce,二维数组

[英]Python - reduce ,two dimensional array

我试图用降低二维数组其中包括coordinates.I的没有很多的经验。我减少有一个函数调用FUNC,我有这个功能应用到阵列中的每个元素。 例如:

func=lambda x:x-1
array=[[5,9],[10,3]]
reduce (lambda x,y: ...,array)
OUTPUT should be -> [[4,8],[9,2]]

我只是将每个元素递减1。 谢谢。

reduce使用两个参数的函数并将其累积地应用于序列的元素 - 但是你想要做的就是从每个子列表的每个元素中减去一个,所以我不确定你为什么要在这里使用reduce

我建议这个列表理解:

>>> lst = [[5,9],[10,3]]
>>> [[x-1 for x in sub] for sub in lst]
[[4, 8], [9, 2]]

或者如果你想使用你的lambda函数:

>>> [map(lambda x: x-1, sub) for sub in lst]
[[4, 8], [9, 2]]

不过,我发现第一个更具可读性。

您不需要使用reduce来减少每个元素的值。
尝试使用地图

arr = map( lambda x:[x[0]-1,x[1]-1],arr)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM