Сравните два словаря и распечатайте разницу - PullRequest
1 голос
/ 12 марта 2019

Я взял разницу между значениями для двух словарей.То, что у меня есть, работает, но я хочу напечатать «dict1 [x] - dict2 [x]» в файл, в который я пишу перед результатами.Не только результаты.Как я могу это сделать?Нужен ли мне вложенный цикл?

comparison = {x: dict1[x] - dict2[x] for x in dict1 if x in dict2}

file1 = open('Results.txt', 'w')
for key,value in comparison.iteritems():
    print >> file1, ('%s: %s' % (key,value)) 
file1.close()

Редактировать: пример

Значения, хранящиеся в каждом словаре, являются временными метками, поэтому я хочу, чтобы мои окончательные результаты выглядели так:

12:30-11:30 = 1:00 

1 Ответ

1 голос
/ 12 марта 2019

Вместо этого вы можете сделать кортеж из dict1[x] и dict2[x] ключом dict и соответствующим образом распаковать его при переборе элементов dict:

comparison = {(dict1[x], dict2[x]): dict1[x] - dict2[x] for x in dict1 if x in dict2}

file1 = open('Results.txt', 'w')
for (time1, time2), value in comparison.iteritems():
    print >> file1, ('%s-%s: %s' % (time1, time2, value)) 
file1.close()
...