私はPythonが初めてです。同じキーを共有するが、キーの値が異なる 2 つの辞書があります。各キーの値の数値の違いを得るために、2 つの辞書を比較したいと思います。例えば:
dict1 = {'hi' : 45, 'thanks' : 34, 'please' : 60}
dict2 = {'hi' : 40, 'thanks' : 46, 'please' : 50}
言い換えれば、これら 2 つの辞書内の値の数値の差を示す 3 番目の辞書またはペアのリストを受け取りたいと思います (つまり、dict1 の値を dict2 から減算します (またはその逆)。したがって、次のようなものになります)。これ:
dict_difference = {'hi' : 5 , 'thanks' : -12, 'please' : 10}
次の方法で、ある辞書から別の辞書を減算することを知っています。
dict1 = Counter({'hi' = 45, 'thanks' = 34, 'please' = 60})
dict2 = Counter({'hi' = 40, 'thanks' = 46, 'please' = 50})
dict3 = dict1-dict2
# は正の値のみを返すため、次のようになります。
dict3 = {'hi'= 5, 'please' = 10}
# これは私が望むものではありません。
また、辞書をペアのリストに変換することも考えました(これが呼び出される方法だと思います):
dictlist = []
for key, value in dict1.iteritems():`
temp = (key, value)
dictlist.append(temp)
したがって
print dictlist #gives:
[('hi', 45),('thanks' = 34), ('please' = 60)]
したがって、辞書をペアのリストに変換し、それを key:value の形式でキー = 値にすることができれば、subtract() メソッドを適用して、目的を達成できると考えました。欲しいです。
https://docs.python.org/2/library/collections.htmldef __repr__(self)
に示されているようにそれを達成することを考えましたが、遠くまで行きませんでした。
どんな助けにも感謝します。可能であれば、コードの説明を残してください。私のアプローチが間違っていて、ある辞書の値を別の辞書から差し引く簡単な方法がある場合は、それも共有してください。