A
とB
という2つの辞書があるとしましょう。同じキーでも値(整数)は異なるものがあります。どのように2つの辞書を比較することができるので、キーが一致すれば差異を得ることができます(例えばがキー"A"
の値であり、y
がキー"B"
の値であれば結果はx-y
)新しい辞書として)。Pythonの2つの辞書の違いを取得する
ゲインをパーセントで比較することもできます(特定の時間に数字のスナップショットである2つの辞書の間で値がどれだけ変化したか)。
A
とB
という2つの辞書があるとしましょう。同じキーでも値(整数)は異なるものがあります。どのように2つの辞書を比較することができるので、キーが一致すれば差異を得ることができます(例えばがキー"A"
の値であり、y
がキー"B"
の値であれば結果はx-y
)新しい辞書として)。Pythonの2つの辞書の違いを取得する
ゲインをパーセントで比較することもできます(特定の時間に数字のスナップショットである2つの辞書の間で値がどれだけ変化したか)。
dict
の理解度を使用してキーをループし、各オリジナルから対応する値を差し引くことができますdict
。
>>> a = {'a': 5, 'b': 3, 'c': 12}
>>> b = {'a': 1, 'b': 7, 'c': 19}
>>> {k: b[k] - a[k] for k in a}
{'a': -4, 'b': 4, 'c': 7}
これは、両方ともdict
が全く同じキーを持っていることを前提としています。それ以外の場合は、キーが1つであればどのような動作が予想されますか?dict
(デフォルト値かもしれません)
共有キーのみを評価する場合は、私たちは1行に収まることができる
new_dict={}
for key in A:
if key in B:
new_dict[key] = A[key] - B[key]
...:あなたは新しい辞書に似たキーの違いを取得したい場合は、キーの
>>> {k: b[k] - a[k] for k in a.keys() & b.keys()}
{'a': -4, 'b': 4, 'c': 7}
、次のような何かを行うことができます
new_dict = { key : A[key] - B[key] for key in A if key in B }
2つの辞書、/同じキーを持っていない可能性があり、あなたがこれを行うことができA
とB
考える:
A = {'a':5, 't':4, 'd':2}
B = {'s':11, 'a':4, 'd': 0}
C = {x: A[x] - B[x] for x in A if x in B}
のみ両方の辞書で同じキーを減算します。
def difference_dict(Dict_A, Dict_B):
output_dict = {}
for key in Dict_A.keys():
if key in Dict_B.keys():
output_dict[key] = abs(Dict_A[key] - Dict_B[key])
return output_dict
>>> Dict_A = {'a': 4, 'b': 3, 'c':7}
>>> Dict_B = {'a': 3, 'c': 23, 'd': 2}
>>> Diff = difference_dict(Dict_A, Dict_B)
>>> Diff
{'a': 1, 'c': 16}
あなたがすべて1行に、それが可能だろうとフィットしたい場合は...
def difference_dict(Dict_A, Dict_B):
output_dict = {key: abs(Dict_A[key] - Dict_B[key]) for key in Dict_A.keys() if key in Dict_B.keys()}
return output_dict
はSOへようこそ。あなたのコードを投稿して、どこに行き詰まっているか教えてください。 http://stackoverflow.com/help/how-to-askも読んでください。 –