私は2つの辞書を持っています:
dicts1 = {'field1':'', 'field2':1, 'field3':1.2}
dicts2 = {'field1':123, 'field2':123, 'field3':'123'}
dict2
の各値を の対応する値と同じ型に変換したいdict1
のですが、それを行う最も簡単な方法は何ですか?
私は2つの辞書を持っています:
dicts1 = {'field1':'', 'field2':1, 'field3':1.2}
dicts2 = {'field1':123, 'field2':123, 'field3':'123'}
dict2
の各値を の対応する値と同じ型に変換したいdict1
のですが、それを行う最も簡単な方法は何ですか?
それらが互換性のあるタイプであると仮定します:
for k, v in dicts1.iteritems():
try:
dicts2[k] = type(v)(dicts2[k])
except (TypeError, ValueError) as e:
pass # types not compatible
except KeyError as e:
pass # No matching key in dict
この 1 つのライナーで実行できますが、型エラーはチェックされません。
dicts1 = {'field1':'', 'field2':1, 'field3':1.2}
dicts2 = {'field1':123, 'field2':123, 'field3':'123'}
print {k : type(dicts1[k])(dicts2[k]) for k in dicts2}
これもそれを行います-そして、一部の人にとってはより読みやすいかもしれません:
print {k : type(dicts1[k])(v) for (k,v) in dicts2.iteritems()}