1 回答
TA贡献1808条经验 获得超4个赞
您可以使用chunked
more-itertools 库将列表分成对,然后循环遍历这些对以查找每个键的最大日期,并将其存储在字典中( ,last_val
在下面的代码中)。这可能是进一步处理最有用的形式。
如果您确实需要将其转换回交错形式,则可以将日期格式化回字符串,并使用chain
标准库中的函数将这些对展平回可迭代(flattened
在下面的代码中)或列表。
from datetime import datetime
from itertools import chain
from more_itertools import chunked
data = [
'xxx', '09-11-2020', 'xxx', '09-13-2020', 'xxx', '09-09-2020', 'hhh',
'09-10-2020', 'hhh', '09-11-2020', 'hhh', '09-15-2020', 'yyyy',
'09-14-2020', 'yyyy', '09-15-2020',
]
last_val = {}
for key, date_str in chunked(data, 2):
date = datetime.strptime(date_str, '%m-%d-%Y').date()
if key not in last_val or date > last_val[key]:
last_val[key] = date
print(last_val)
flattened = chain(*(
(key, date.strftime('%m-%d-%Y'))
for key, date in last_val.items()
))
print(list(flattened))
添加回答
举报