我有两个列表
第一个:
[
datetime.date(2021, 7, 1),
datetime.date(2021, 7, 2),
datetime.date(2021, 7, 3),
datetime.date(2021, 7, 4),
...
...
...
datetime.date(2021, 7, 27),
datetime.date(2021, 7, 28),
datetime.date(2021, 7, 29),
datetime.date(2021, 7, 30),
datetime.date(2021, 7, 31)
]
这是第二个列表:
[(
1, datetime.date(2021, 7, 1),
3, datetime.date(2021, 6, 19),
3, datetime.date(2021, 6, 20),
2, datetime.date(2021, 6, 21),
2, datetime.date(2021, 6, 22),
3, datetime.date(2021, 6, 23),
3, datetime.date(2021, 6, 24),
1, datetime.date(2021, 6, 25),
4, datetime.date(2021, 6, 26),
3, datetime.date(2021, 6, 27),
2, datetime.date(2021, 6, 28),
1, datetime.date(2021, 6, 29)
)]
我想检查第二个列表中的哪个日期存在于第一个列表中。然后,如果他们之间有一个共同的日期,我想把之前的值放在字典里。例如";2021-07-01";它很常见,然后我想把以前的值放在一个字典里,像这样:
{
"2021-07-01": "1",
}
但是,如果列表1中有一个日期不在列表2中,我希望它在前面的字典中为零:
{
"2021-07-01": "1",
...
"2021-07-02": "0",
"2021-07-03": "0",
"2021-07-04": "0",
...
...
...
}
有什么想法吗我希望我能明白我的意思。
你在找时间增量吗?
如果没有一段代码和预期结果,很难帮助您
对于不存在的日期,我会使用try/except语句
from datetime import datetime, timedelta
try:
a = datetime(2021, 7, 1)
b = a + timedelta(days = -1)
c = tuple(b.timetuple()[:3])
except:
c = (0,0,0)
print (c)
来源:https://www.geeksforgeeks.org/python-datetime-timedelta-function/https://stackoverflow.com/a/62582119/4173718
date_list
是第一个列表,orders_in_dates
是第二个列表:
date_dict = dict()
for e in orders_in_dates:
date_dict.setdefault(e[1], e[0])
complete_list = [(d, date_dict.get(d, 0)) for d in date_list]