from collections import OrderedDict
b= OrderedDict([('04-25', 5), ('04-23', 53), ('04-20', 3), ('04-2', 33)])
# b = OrderedDict()
c = OrderedDict([('04-20', 5), ('03-18', 53), ('03-13', 3), ('03-12', 133)])
b_data = OrderedDict()
for k , v in b.items()+c.items():
b_data.setdefault(k,[]).append(v)
f_data = OrderedDict()
for k1, v1 in b_data.iteritems():
if len(v1)==1:
f_data[k1]=v1[0],0
else:
f_data[k1]=v1[0],v1[1]
print f_data
я могу получить выход f_dataOrderedDict Слить и Append 0, если не
OrderedDict([('04-25', (5, 0)), ('04-23', (53, 0)), ('04-20', (3, 5)), ('04-2', (33, 0)), ('03-18', (53, 0)), ('03-13', (3, 0)), ('03-12', (133, 0))])
Но при слиянии Ь и с позиций, в f_data значение [0] должно быть б значение и значение [1] должна иметь значение c. если в этом нет значения, положите 0.
Если элементы b пустые, мы должны сохранить 0 в значении [0] и c элементов в значении [1].
Если b и c имеют одинаковое слияние ключей вместе со своими значениями, как я упоминал выше.
Мой ожидаемый выход для выше данных,
OrderedDict([('04-25', (5, 0)), ('04-23', (53, 0)), ('04-20', (3, 5)), ('04-2', (33, 0)), ('03-18', (0, 53)), ('03-13', (0, 3)), ('03-12', (0,133))])
Вы можете очистить свой код? нет причин «импортировать коллекции», если вы собираетесь импортировать 'OrderedDict' из' collections'. Аналогично, вы определяете 'b' и' c', а затем переопределяете их на следующих двух строках. нет оснований для первых определений. – dbliss
, пожалуйста, проверьте сейчас –