我想知道是否有人可以帮我解决我遇到的Python问题。我有四个列表,每个列表包含浮点数(小数)。我正在添加每个列表包含的所有浮点数。我坚持的部分是我想知道四个列表中哪一个有更高的总和。我知道我可以使用if语句,但有人知道更多有效的方法。例如:
foodmart = [12.33,5.55]
nike = [42.20,69.99]
gas_station = [0.89,45.22]
toy_store = [10.99,15.32]
答案 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]