有没有更好的方法在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))])
答案 0 :(得分:7)
只需使用内置的min
data = ((1,2,3),(1,3,1),(2,2,3),(0,2,2))
print(min(data, key=sum))
答案 1 :(得分:0)
另一种方法是,根据每个元素的总和对元组进行排序,而不是采用最少和的第一个元素:
subprocess