Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 求和最小的值_Python_Python 3.x - Fatal编程技术网

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),

在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),(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)