字典:
dict1={pk1:date1, pk2:date2, pk3:date3, pk5:date5}
dict2={pk1:date11, pk3:date13, pk6:date16}
我试图比较dict1和dict2之间的值,其中对于给定的pk,如果dict1中的日期小于dict2it将返回" Old record"。否则,如果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比日期11更新,而date3比date13更新。)
Comparing two dictionaries in Python似乎是一个很好的起点,但我并不完全明白所有情况都会根据我的情况进行编辑。
答案 0 :(得分:4)
你可以字典理解:
{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]
否则,“旧记录”。“