Python 求和最小的值
在python中是否有更好的方法来执行以下操作:Python 求和最小的值,python,python-3.x,Python,Python 3.x,在python中是否有更好的方法来执行以下操作: m = float("inf") for i in ((1,2,3),(1,3,1),(2,2,3),(0,2,2)): r = sum(i) if r < m: best = i m = r print(best) 只需使用内置的 另一种方法是根据每个元素的和对元组进行排序,而不是选择第一个和最少的元素: >>> t = ((1,2,3),(1,3,1),(2,2,3),
m = float("inf")
for i in ((1,2,3),(1,3,1),(2,2,3),(0,2,2)):
r = sum(i)
if r < m:
best = i
m = r
print(best)
只需使用内置的
另一种方法是根据每个元素的和对元组进行排序,而不是选择第一个和最少的元素:
>>> t = ((1,2,3),(1,3,1),(2,2,3),(0,2,2))
>>> sorted(t, key=sum)[0]
(0, 2, 2)
@用户2357112很好!您甚至可以使用key=lambda x:f(g(x))非常理想。这是可行的,但是
sorted
具有时间复杂度O(N log(N)
,而min
具有时间复杂度O(N)
@Caridorc如果存在多个解决方案,这不是必需的方法吗?@Baz是的,对于多个值,您应该对其进行排序。
data = ((1,2,3),(1,3,1),(2,2,3),(0,2,2))
print(min(data, key=sum))
>>> t = ((1,2,3),(1,3,1),(2,2,3),(0,2,2))
>>> sorted(t, key=sum)[0]
(0, 2, 2)