Python:对于每个列表元素,在列表中应用一个函数
鉴于[1,2,3,4,5]
,我该怎么做
1/1, 1/2, 1/3,1/4,1/5, ...., 3/1,3/2,3/3,3/4,3/5,.... 5/1,5/2,5/3,5/4,5/5
我想存储所有结果,找到最小值,然后返回用于找到最小值的两个数字。因此,在上述情况下,我想返回(1,5)
。
所以基本上我想做类似的事情
每个元素i
列表中的映射跨所有元素一些功能列表中,以i
与j
作为参数结果存储在主列表,发现在主列表中的最小值,并返回参数i
,j
用于计算该最小值。
在我的实际问题中,我有一个列表对象/坐标,而我正在使用的函数采用两个坐标并计算欧几里得距离。我试图找到任意两点之间的最小欧几里得距离,但我不需要花哨的算法。
回答:
您可以使用列表推导和min()(Python
3.0代码)来执行此操作:
>>> nums = [1,2,3,4,5]>>> [(x,y) for x in nums for y in nums]
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5)]
>>> min(_, key=lambda pair: pair[0]/pair[1])
(1, 5)
请注意,要在Python 2.5上运行此代码,您需要将其中一个参数设为浮点数,或者from __future__ import
division将1/5正确地等于0.2而不是0。
以上是 Python:对于每个列表元素,在列表中应用一个函数 的全部内容, 来源链接: utcz.com/qa/425112.html