0

私はこのような辞書を持っています

dict1 = [('var1','aa'),('var2','bb')('var3','cc')]

別の辞書があります

dict2 = [('var2','22'),('var3','33'),('var5','23'),('var6','33'),('var7','23')]

私がやりたいのは、その内容をdict2dict1のバリベルに置き換えることです。

つまり、final dict3 =dict2 = [('var2','bb'),('var3','cc'),('var5','23'),('var6','33'),('var7','23')]

4

2 に答える 2

5
>>> list1 = [('var1','aa'),('var2','bb'),('var3','cc')]
>>> list2 = [('var2','22'),('var3','33'),('var5','23'),('var6','33'),('var7','23')]
>>> dict1 = dict(list1)
>>> list2 = [(k, dict1.get(k, v)) for k, v in list2]
>>> list2
[('var2', 'bb'), ('var3', 'cc'), ('var5', '23'), ('var6', '33'), ('var7', '23')]

これにより、元の順序が維持されますlist2

于 2012-12-10T06:11:36.933 に答える
3

それらは辞書ではありません。彼らがいた場合、これを行う方法は次のとおりです。

>>> dict1 = {'var1':'aa', 'var2':'bb' ,'var3':'cc'}
>>> dict2 = {'var2':'22', 'var3':'33', 'var5':'23', 'var6':'33', 'var7':'23'}
>>> for key in dict2:
...     if key in dict1:
...             dict2[key] = dict1[key]
... 
>>> dict2
{'var5': '23', 'var7': '23', 'var6': '33', 'var3': 'cc', 'var2': 'bb'}

dict1私の例のように、最初は辞書であり、実際には辞書になりたいと思うかもしれませんがdict2、たとえば、を使用して簡単に変換できることに注意してください。dict1 = dict(dict1)

于 2012-12-10T06:11:08.500 に答える