Если у меня есть 2 изречения:
d1 = {('unit1','test1'):2,('unit1','test2'):4}
d2 = {('unit1','test1'):2,('unit1','test2'):''}
Чтобы их «слить»:
z = dict(d1.items() + d2.items())
z = {('unit1','test1'):2,('unit1','test2'):''}
Работает отлично. Кроме того, что делать, если я хочу сравнить каждое значение двух словарей и обновить d2 до d1 только в том случае, если значения в d1 пусты / None / ''?
[EDIT] Вопрос: при обновлении d2 до d1, когда такой же ключ существует, я хотел бы сохранить только числовое значение (либо из d1, либо из d2) вместо пустого значения. Если оба значения пусты, тогда нет проблем с сохранением пустого значения. Если оба имеют значения, значение d1 должно остаться. :) (много если-еще .. А пока попробую)
i.e.
d1 = {('unit1','test1'):2,('unit1','test2'):8,('unit1','test3'):''}
d2 = {('unit1','test1'):2,('unit1','test2'):'',('unit1','test3'):''}
#compare & update codes
z = {('unit1','test1'):2,('unit1','test2'):8, ('unit1','test2'):''} # 8 not overwritten by empty.
пожалуйста, помогите предложить.
Спасибо.
in? - person Ignacio Vazquez-Abrams   schedule 15.06.2011