1 回答

TA貢獻1808條經(jīng)驗 獲得超4個贊
您可以使用chunked
more-itertools 庫將列表分成對,然后循環(huán)遍歷這些對以查找每個鍵的最大日期,并將其存儲在字典中( ,last_val
在下面的代碼中)。這可能是進一步處理最有用的形式。
如果您確實需要將其轉換回交錯形式,則可以將日期格式化回字符串,并使用chain
標準庫中的函數(shù)將這些對展平回可迭代(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))
添加回答
舉報