第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據(jù)日期范圍從字典列表中過濾出子字典

如何根據(jù)日期范圍從字典列表中過濾出子字典

慕碼人2483693 2022-01-05 13:10:58
我需要根據(jù)日期范圍從字典列表中過濾出子字典這是我的清單:[{'5-jan-2019': '34'}, {'10-jan-2019': '34'}, {'21-jan-2019': '12'}, {'25-jan-2019': '34'} , {'5-feb-2019': '34'}]我需要過濾掉一個日期范圍內(nèi)的所有子詞典from_date-'5-jan-2019' and  to_date-'25-jan-2019'并將其添加到新字典中預(yù)期結(jié)果{    '5-jan-2019': '34',    '10-jan-2019': '34',    '21-jan-2019': '12',    '25-jan-2019': '34'}
查看完整描述

2 回答

?
慕森卡

TA貢獻1806條經(jīng)驗 獲得超8個贊

您希望 datetime.strptime 將字符串轉(zhuǎn)換為 datetime 對象,然后您可以將它們相互比較。


from datetime import datetime


lst = [

    {'5-jan-2019': '34'},

    {'10-jan-2019': '34'},

    {'21-jan-2019': '12'},

    {'25-jan-2019': '34'},

    {'5-feb-2019': '34'},

    ]


dt_from_str = lambda dt: datetime.strptime(dt, '%d-%b-%Y')


start_date = dt_from_str('5-jan-2019')

end_date = dt_from_str('25-jan-2019')


new_dict = {}

for sub_dict in lst:

    for key, val in sub_dict.items():

        if start_date <= dt_from_str(key) <= end_date:

            new_dict[key] = val


print(new_dict)

輸出:


{

    '5-jan-2019': '34',

    '10-jan-2019': '34',

    '21-jan-2019': '12',

    '25-jan-2019': '34',

}


查看完整回答
反對 回復(fù) 2022-01-05
?
慕仙森

TA貢獻1827條經(jīng)驗 獲得超8個贊

您可以使用該datetime模塊來利用對象的內(nèi)置比較方法(__lt__等)datatime.datetime:


import datetime

data = [{'5-jan-2019': '34'}, {'10-jan-2019': '34'}, {'21-jan-2019': '12'}, {'25-jan-2019': '34'} , {'5-feb-2019': '34'}]

start, end = '5-jan-2019', '25-jan-2019'

def d_form(d):

   months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']

   _d, _m, _y = d.split('-')

   return datetime.datetime(int(_y), months.index(_m)+1, int(_d))


start, end = d_form(start), d_form(end)

final_result = [i for i in data if start <= d_form(list(i.keys())[0]) <= end]

輸出:


[{'5-jan-2019': '34'}, 

 {'10-jan-2019': '34'}, 

 {'21-jan-2019': '12'}, 

 {'25-jan-2019': '34'}]


查看完整回答
反對 回復(fù) 2022-01-05
  • 2 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號