【问题标题】:Create a dictionary by comparing values from two dictionaries using python通过使用 python 比较两个字典中的值来创建字典
【发布时间】:2012-03-14 01:17:56
【问题描述】:

对于字典:

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

我正在尝试比较 dict1 和 dict2 之间的值,对于给定的 pk,如果 dict1 中的日期小于 dict2,它将返回“旧记录”。否则,如果 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 更新。)

Comparing two dictionaries in Python 似乎是一个很好的起点,但我不太明白那里发生了什么来编辑它以适应我的情况。

【问题讨论】:

    标签: python dictionary


    【解决方案1】:

    你可以理解字典:

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

    它说“如果k1dict2它存在并且dict1[k1] > dict2[k1]然后执行datetime.now() - dict1[k1]。否则,“旧记录” 。”

    【讨论】:

    • 谢谢,效果很好。我看到我的 Q 中有一个错误,我已修复(dict3 与我的文字相矛盾)。如果 dict2 中缺少该值,则它应该返回 datetime.now()-value,而不是原始输入中指示的“旧记录”(但在 dict3 中是正确的)。请更新您的答案,我会将其标记为正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 2018-04-06
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多