1

a = {u'1': ['abc', 'thanks', 2.0, 999.0],u'2': ['def', 'for', 2.0, 100.0],u'3': ['ghi', 'helping', 1.0, 99999.0],u'4': ['jkl', 'me', 3.0, 2120.0] etc:[etc]}

だから私はすべてのディクショナリ{キー:リスト[何とか、何とか、数字数字]、キー:リスト[何とか、何とか、数字数字]、など}をすべて乗算しようとしています。これは非常に面倒です:(。必要な出力は108557、(2*999)+(2*100)+(1*99999)+(3*2120) から派生したものです。

ここで答えを見つけました辞書でキー*値を乗算しますか? それは私の問題をほぼ解決します。を使用して、この辞書を掛けてa = {2: 4, 3: 2, 5: 1, 7: 1}の答えを得ることができるという点で。このコードにリストを組み込むのに問題があります。助けてくれてありがとう。26sum([key * val for key, val in a.items()])

4

1 に答える 1

3

数値が常に最後の 2 つの要素である場合は、次のようにすることができます。

sum([val[-2] * val[-1] for val in a.values()])

Blckknght のヒントで更新された編集

于 2012-12-01T06:02:04.880 に答える