如果值是日期,我该如何遍历字典中的所有值

时间:2019-07-24 19:26:12

标签: python loops dictionary

我想计算一定数量的日期和今天之间的日期,但是我在字典中输入了很多日期,似乎无法遍历它们。

from datetime import date

dates= {"A": (2019, 7, 25), "B": (2017, 1, 19), "C": (2016, 11, 17), "D": (2017, 10, 17)}    
current = date(2019, 7, 24)

for key, value in champs.items():
    d1 = date(champs[value])
    days = d1 - current
    print(days)

我尝试了这个,但是它给了我这个错误:

KeyError: (2019, 7, 24)

我想知道字典中每个日期和当前日期之间有多少天。有办法吗?

1 个答案:

答案 0 :(得分:0)

只需使用d1 = date(*value)。因为您使用items()方法,所以您已经从dict获得了(key and)值。

更好的解决方案是不使用dict(因为您对键不做任何事情),或者如下所述直接对值进行迭代。

from datetime import date

dates = {
    "A": (2019, 7, 25),
    "B": (2017, 1, 19),
    "C": (2016, 11, 17),
    "D": (2017, 10, 17),
}

current = date(2019, 7, 24)

for date_tuple in dates.values():
    d1 = date(*date_tuple)
    delta = current - d1
    print(delta.days)

输出

-1
916
979
645