我有一本字典,如下所示。
months_dict = {"m1":"JAN", "m2":"FEB", "m3":"MAR", "m4":"APR", "m5":"MAY", "m6":"JUN",
"m7":"JUL", "m8":"AUG", "m9":"SEP", "m10":"OCT", "m11":"NOV", "m12":"DEC"}
我想在過去 12 個月內更新,如下所示。
預期輸出:
current_month_dict = {"m1":"MAR", "m2":"APR", "m3":"MAY", "m4":"JUN", "m5":"JUL", "m6":"AUG",
"m7":"SEP", "m8":"OCT", "m9":"NOV", "m10":"DEC","m11":"JAN","m12":"FEB"}
我的嘗試:
from datetime import datetime
current_month_text_3 = datetime.now().strftime('%h').upper()
在那之后我被困住了。我通過遍歷字典并創建靜態月份串列等方式進行了很多嘗試。想不出正確的邏輯。
uj5u.com熱心網友回復:
看起來這就是你要找的 m1 這里是下個月,因為我從 i=1 開始回圈,你可以做 ai=0 來獲得 m1 作為 feb
from datetime import datetime
arr_months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']
def transform_month_list(month_list):
current_month_text_3 = datetime.now().strftime('%h').upper()
idx = arr_months.index(current_month_text_3)
for i in range(1, 13):
month_list["m" str(i)] = arr_months[(idx i) % 12]
default_months_dict = {"m1": "JAN", "m2": "FEB", "m3": "MAR", "m4": "APR", "m5": "MAY", "m6": "JUN",
"m7": "JUL", "m8": "AUG", "m9": "SEP", "m10": "OCT", "m11": "NOV", "m12": "DEC"}
if __name__ == '__main__':
try:
transform_month_list(default_months_dict)
print(default_months_dict)
except Exception as e:
print(e)
uj5u.com熱心網友回復:
使用這樣的語法
{ modify_func(key) : val for key, val in months_dict.items()}
在你的情況下
>>> { f"m{(int(key[1:]) 9) % 12 1}" : val for key, val in months_dict.items()}
{'m11': 'JAN', 'm12': 'FEB', 'm1': 'MAR', 'm2': 'APR', 'm3': 'MAY', 'm4': 'JUN', 'm5': 'JUL', 'm6': 'AUG', 'm7': 'SEP', 'm8': 'OCT', 'm9': 'NOV', 'm10': 'DEC'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425646.html
標籤:python-3.x 列表 字典
