5

一緒に乗算したいキーと値を持つ 2 つの別個の辞書があります。値は、それらが持っているキーだけで乗算する必要があります。

すなわち

dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 15, 'b': 10, 'd': 17}

dict3 = dict.items() * dict.items()
print dict3

#### #dict3 should equal 
{'a': 15, 'b': 20}

誰かが助けてくれれば、それは素晴らしいことです。ありがとう!

4

3 に答える 3

16

dict 内包表記を使用できます。

>>> {k : v * dict2[k] for k, v in dict1.items() if k in dict2}
{'a': 15, 'b': 20}

または、2.7 より前の Python では、ジェネレーター式dictと組み合わせたコンストラクター:

>>> dict((k, v * dict2[k]) for k, v in dict1.items() if k in dict2)
{'a': 15, 'b': 20}
于 2013-03-11T09:16:45.377 に答える
0
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 15, 'b': 10, 'd': 17}

def dict_mul(d1, d2):
    d3 = dict()
    for k in d1:
        if k in d2:
            d3[k] = d1[k] * d2[k]
    return d3

print dict_mul(dict1, dict2)
于 2013-03-11T09:20:52.110 に答える
0

私の電話から、コードを入力するのは少し難しいです。これでうまくいくはずです:

for key, value in dict1.iteritems():
    if key in dict2:
         dict3[key] = int(dict1[key]) * int(dict2[key])
于 2013-03-11T09:21:50.560 に答える