亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

迭代字典列表并更新前一行的值

迭代字典列表并更新前一行的值

慕勒3428872 2021-07-09 14:00:12
我有一個字典列表,我需要在其中通過將時間增量添加到進入時間來計算退出時間。然后我需要用前一行的退出時間更新下一行的進入時間,并向其添加另一個增量,然后成為退出時間。lst = [{'entry_time': [datetime.time(8, 20)],'exit_time': [0]},{'entry_time': [],'exit_time': []},{'entry_time': [0],'exit_time': [0]},{'entry_time': [],'exit_time': []}]delta_lst = [datetime.timedelta(0, 53),datetime.timedelta(0, 32),datetime.timedelta(0, 32),datetime.timedelta(0, 32)]我在這上面花了很多天,但我覺得我錯過了這樣一個同時操作的東西。我不太了解其他數據結構,但我應該考慮堆、隊列還是堆棧?這是我的代碼。for idx,l in enumerate(lst):    for key,val in l.items():        if key == 'entry_time':            try:                entry_time = l[key][0]                cal_ExitTime(entry_time,idx)                l['exit_time'] = [exit_time]            except:                entry_time = lst[idx-1]['exit_time'][0]                l['entry_time'] = [exit_time]            cal_ExitTime(entry_time,idx)            l['exit_time'] = [exit_time]有一個函數 cal_ExitTime 是這樣寫的 -def cal_ExitTime(entry_time,idx):    converted_start_time = datetime.datetime.combine(datetime.date(1,1,1),entry_time)    exit_time = (converted_start_time + delta_lst[idx]).time()        return exit_time當我運行我的程序時,我的列表中的第一個字典條目會被更新,而我的 entry_time 和 exit_time 的其余部分會被我的第一行的 exit_time 更新??雌饋砦业牧斜碜值涞臈l目不一致(即空列表或0值),但我的數據來源是這樣的。我的預期代碼如下 -lst = [{'entry_time': [datetime.time(8, 20)],'exit_time':[datetime.time(8, 20, 53)]}, {'entry_time': [datetime.time(8, 20,53)],'exit_time': [datetime.time(8, 21, 25)]},{'entry_time': [datetime.time(8, 21, 25)],'exit_time': [datetime.time(8, 21, 57)]},{'entry_time': [datetime.time(8, 21, 57)],'exit_time': [datetime.time(8, 22, 29)]}]感謝您的寶貴見解和幫助。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號