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

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

遍歷字典 x 次

遍歷字典 x 次

繁星點點滴滴 2022-06-28 16:13:56
首先,我需要考慮 2 個變量:offer_duration和offer_start_day。報價可以在一周中的任何一天開始,持續時間是可變的(1 到 7 天之間)。我正在嘗試創建報價運行的一周中所有日期的列表。即如果報價開始日是星期四并持續 3 天,我需要一個輸出以下內容的列表:['Thursday'、'Friday'、'Saturday']。到目前為止,我已經創建了一個字典:day_of_week = {"Monday":0, "Tuesday":1, "Wednesday":2, "Thursday":3, "Friday":4, "Saturday":5, "Sunday":6}我正在嘗試從一周中的某一天(即星期四)開始遍歷字典并迭代 offer_duration 次數。我已經制作了以下內容,但不知道如何找到我的解決方案,或者使用字典來解決這個問題是否是正確的方法。任何幫助,將不勝感激for key, num in day_of_week.items():    if num == test_case('2019-06-27').weekday():        starting_day = numprint(starting_day)
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

字典沒有排序,所以你不能保證你的 day_of_week 鍵會以正確的順序迭代。更好的方法是使用 datetime 模塊和 timedelta。像這樣:


start = datetime.date(2019, 6, 27)

duration = 3  # days

days = [(start + datetime.timedelta(days=n)).strftime('%A') for n in range(duration)]

assert days == ['Thursday', 'Friday', 'Saturday']


查看完整回答
反對 回復 2022-06-28
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

首先,我會以day_of_week這種方式啟動:


day_of_week = {0: 'Monday', 1: 'Tuesday', 2: 'Wednesday', 3: 'Thursday', 4: 'Friday', 5: 'Saturday', 6: 'Sunday'}

您可以從您當前的定義中實現這一點,如下所示:


day_of_week = {v:k for k,v in day_of_week.items()}

然后


import datetime


my_week_day = datetime.datetime(2019,6,27).weekday()

offer_length = 3


offer_days = [v for k,v in day_of_week.items() if k in [a%7 for a in range(my_week_day,my_week_day + offer_length)]]


print(offer_days)


輸出: ['Thursday', 'Friday', 'Saturday']


或者您可以使用以下內容來維護正確的日期順序



offer_days = []

for a in range(my_week_day,my_week_day + offer_length):

    offer_days.append(day_of_week[a%7])


print(offer_days)

我只導入了 datetime 因為我不知道你的 test_case 函數。


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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