我有一個(gè)字典列表,我需要在其中通過(guò)將時(shí)間增量添加到進(jìn)入時(shí)間來(lái)計(jì)算退出時(shí)間。然后我需要用前一行的退出時(shí)間更新下一行的進(jìn)入時(shí)間,并向其添加另一個(gè)增量,然后成為退出時(shí)間。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)]我在這上面花了很多天,但我覺(jué)得我錯(cuò)過(guò)了這樣一個(gè)同時(shí)操作的東西。我不太了解其他數(shù)據(jù)結(jié)構(gòu),但我應(yīng)該考慮堆、隊(duì)列還是堆棧?這是我的代碼。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]有一個(gè)函數(shù) cal_ExitTime 是這樣寫(xiě)的 -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當(dāng)我運(yùn)行我的程序時(shí),我的列表中的第一個(gè)字典條目會(huì)被更新,而我的 entry_time 和 exit_time 的其余部分會(huì)被我的第一行的 exit_time 更新??雌饋?lái)我的列表字典的條目不一致(即空列表或0值),但我的數(shù)據(jù)來(lái)源是這樣的。我的預(yù)期代碼如下 -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)]}]感謝您的寶貴見(jiàn)解和幫助。
添加回答
舉報(bào)
0/150
提交
取消