如何获得具有更高元素总和的列表

时间:2013-01-10 16:06:20

标签: python

我想知道是否有人可以帮我解决我遇到的Python问题。我有四个列表,每个列表包含浮点数(小数)。我正在添加每个列表包含的所有浮点数。我坚持的部分是我想知道四个列表中哪一个有更高的总和。我知道我可以使用if语句,但有人知道更多有效的方法。例如:

foodmart = [12.33,5.55]
nike = [42.20,69.99]
gas_station = [0.89,45.22]
toy_store = [10.99,15.32]

3 个答案:

答案 0 :(得分:7)

使用max()

>>> max(foodmart,nike,gas_station,toy_store, key=sum)
>>> [42.2, 69.99]
help()上的

max

  

max(iterable [,key = func]) - >价值

     

max(a,b,c,... [,key = func]) - >   值

     

使用单个可迭代参数,返回其最大项。有两个或   更多参数,返回最大的参数。

答案 1 :(得分:4)

将列表表示为dict,并使用带有可选max函数的key来计算sum

不要以您的方式表示列表,而是使用字典。可以更容易地确定正确的商店并在任何数量的列表/商店上工作,而无需在最大例程中枚举它们。这将是更多Pythonic和可维护的

>>> shops = dict()
>>> shops['foodmart'] = [12.33,5.55]
>>> shops['nike'] = [42.20,69.99]
>>> shops['gas_station'] = [0.89,45.22]
>>> shops['toy_store'] = [10.99,15.32]
>>> max(shops, key = lambda k:sum(shops[k]))
'nike'

答案 2 :(得分:2)

>>> max([1,2],[3,4],[2,3], key=lambda x: sum(x))
[3, 4]