У меня есть следующая проблема: заданы два dicts с идентификаторами товара в виде ключей и title + author в качестве значений. Я хотел бы сравнить два dicts, используя идентификаторы статьи: если у идентификаторов статьи есть разные заголовки/авторы, я бы хотел создать сопоставление, состоящее из строки, которая сначала выводит старый идентификатор статьи, а также заголовок и автора И новый идентификатор с соответствующим заголовком и автором.Python: найти отличия в двух dicts
Пример:
old = {u'2014_en_1': u'Letter A\tauthor A\n', u'2014_en_2': u'Explanation\tauthor B\n', u'2014_en_3': u'Conclusion\tauthor C\n'}
new = {u'2014_en_1': u'Welcome\tauthor XY\n', u'2014_en_2': u'Letter A\tauthor A\n', u'2014_en_3': u'Conclusion\tauthor C\n', u'2014_en_4': u'Explanation\tauthor B\n',}
for k, v in old.iteritems():
if old[k] != new[k]:
print k + "\t" + old[k] + # HOW can I find the corresponding article in new?
Таким образом, желаемый результат должен быть:
[] [] 2014_en_1 Welcome\tauthor XY
2014_en_1 Letter A\tauthor A 2014_en_2 Letter A\tauthor A
2014_en_2 Explanation\tauthor B 2014_en_4 Explanation\tauthor B
2014_en_3 Conclusion\tauthor C 2014_en_3 Conclusion\tauthor C
Как я могу это сделать? Это сложно, потому что возможно, что новый dict может иметь новые статьи (или наоборот):/ Спасибо за любую помощь!
Спасибо большое за предложение! :) Это именно то, что я хотел сделать! И ... ничего себе, всего в 7 строках! : O Что я хотел спросить: возможно ли получить выходной вид сортировки, возможно, s.t. сначала печатаются новые статьи без переписки в старом dict, а после art_1 из старого dict, который принадлежит статье X в новом dict? – MarkF6
@ MarkF6: Это возможно, но это включает дополнительный шаг, на котором вы храните данные в списке и распечатываете их отсортированные. См. Обновленный ответ. – netcoder
WOW, это феноменально! :) Большое спасибо! :) – MarkF6