#python #python-2.7 #for-loop #dictionary-comprehension
#python #python-2.7 #for-цикл #словарь-понимание
Вопрос:
Я взял разницу между значениями для двух словарей. То, что у меня есть в данный момент, работает, но я хочу напечатать «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. Непонятно, что вы имеете в виду под
I want to print "dict1[x] - dict2[x]" to the file I write to in front of the results
. Можете ли вы обновить свой вопрос с помощью примера ввода и ожидаемого результата?
Ответ №1:
Вместо этого вы можете создать кортеж из 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()
Комментарии:
1. Возможно ли затем также включить ключ? Например,
key: time1 - time2 = value