找出哪个总和为最小值

时间:2015-12-28 22:06:49

标签: 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)

我试图找到((1,2,3),(1,3,1),(2,2,3),(0,2,2)中的项目总和到最小的价值。

以下是我能想到的最好的结果:

data = ((1,2,3),(1,3,1),(2,2,3),(0,2,2))
sums = tuple(sum(i) for i in data)
print(data[sums.index(min(sums))])

2 个答案:

答案 0 :(得分:7)

只需使用内置的min

即可
data = ((1,2,3),(1,3,1),(2,2,3),(0,2,2))
print(min(data, key=sum))

答案 1 :(得分:0)

另一种方法是,根据每个元素的总和对元组进行排序,而不是采用最少和的第一个元素:

subprocess