/ / Utwórz słownik, porównując wartości z dwóch słowników przy użyciu pythona - pythona, słownika

Utwórz słownik, porównując wartości z dwóch słowników przy użyciu pythona - pythona, słownika

W przypadku słowników:

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

Próbuję porównać wartości między dict1i dict2, gdzie dla danego pk, jeśli data w dict1 jest mniejsza niż dict2it, zwróci "stary rekord". Jeśli wartość w dict1 jest nowsza niż dict2 (lub para k: v nie występuje w dict2), zwraca wartość datetime.now () - wartość z dict1.

Wynikowy słownik może wyglądać tak:

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

(zakładając, że data1 jest bardziej aktualna niż data 11, a data3 jest nowsza niż data 13).

Porównanie dwóch słowników w Pythonie wydaje się być dobrym punktem wyjścia, ale nie bardzo rozumiem, co się tam dzieje, aby edytować to w mojej sytuacji.

Odpowiedzi:

4 dla odpowiedzi № 1

Możesz zrozumieć słownik:

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

Mówi "jeśli k1 jest nie w dict2, lub istnieje i dict1[k1] > dict2[k1] następnie zrób datetime.now() - dict1[k1]. W przeciwnym razie "stary rekord". "