2

私が抱えている Python の問題を誰かが助けてくれるかどうか疑問に思っていました。4 つのリストがあり、各リストには浮動小数点 (10 進数) が含まれています。各リストに含まれるすべてのフロートを追加しています。私が立ち往生している部分は、4 つのリストのうちどれがより高い合計を持っているかを知りたいということです。if ステートメントを使用できることはわかっていますが、より効率的な方法を知っている人はいますか。例えば:

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

3 に答える 3

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 つ指定すると、その最大のアイテムが返されます。引数が 2 つ以上ある場合は、最大の引数を返します。

于 2013-01-10T16:09:21.467 に答える
4

リストをとして表し、オプションの関数とともにdict使用して、maxkeysum

リストをあなたのように表現する代わりに、辞書を使用してください。maxルーチンでそれらを列挙する必要なしに、正しいショップを決定し、任意の数のリスト/ショップで作業する方が簡単です。これはより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'
于 2013-01-10T16:13:26.583 に答える
2
>>> max([1,2],[3,4],[2,3], key=lambda x: sum(x))
[3, 4]
于 2013-01-10T16:08:51.840 に答える