Создать словарь, сравнивая значения из двух словарей, используя python - PullRequest
1 голос
/ 14 марта 2012

Для словарей:

dict1={pk1:date1, pk2:date2, pk3:date3, pk5:date5}
dict2={pk1:date11, pk3:date13, pk6:date16}

Я пытаюсь сравнить значения между dict1 и dict2, где для заданного pk, если дата в dict1 меньше, чем dict2it, вернет "Старая запись".Иначе, если значение в dict1 является более новым, чем dict2 (или в dict2 отсутствует пара k: v), возвращается datetime.now () - значение из dict1.

Таким образом, результирующий словарь может выглядеть следующим образом:

dict3={pk1: datetime.now()-date1, pk2: datetime.now()-date2, pk3: "old record", pk5: datetime.now()-date5}  

(при условии, что date1 более поздняя, ​​чем date 11, а date3 более поздняя, ​​чем date13.)

Сравнение двух словарей в Python кажется хорошей отправной точкой, но я не совсем понимаю, что там происходит, чтобы отредактировать его в моей ситуации.

1 Ответ

4 голосов
/ 14 марта 2012

Вы могли бы понять словарь:

{k1:datetime.now() - v1 if (k1 not in dict2 or v1 > dict2[k1]) 
                      else 'Old record' 
 for k1,v1 in dict1.iteritems()}

Он говорит "если k1 это не в dict2, или , то оно существует и dict1[k1] > dict2[k1]затем выполните datetime.now() - dict1[k1]. В противном случае "старая запись". "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...