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

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

按升序對月份名稱字符串列表進行排序

按升序對月份名稱字符串列表進行排序

慕標5832272 2022-08-25 13:45:58
有人可以指導如何排序月份列表嗎?INPUT = ['August', 'September', 'October', 'November', 'December', 'January'] OUTPUT= ['January','August', 'September', 'October', 'November', 'December']
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

calendar.month_name是一個對象,可以按正確的順序轉換為月份列表。您可以按此列表中每個字符串的索引進行排序,前提是您的輸入字符串格式正確:


>>> from calendar import month_name

>>> month_lookup = list(month_name)

>>> months = ['August', 'September', 'October', 'November', 'December', 'January']

>>> sorted(months, key=month_lookup.index)

['January', 'August', 'September', 'October', 'November', 'December']

您還可以使用 datetime.strptime 和與完整月份名稱匹配的格式字符串。"%B"


>>> from datetime import datetime

>>> months = ['August', 'September', 'October', 'November', 'December', 'January']

>>> sorted(months, key=lambda m: datetime.strptime(m, "%B"))

['January', 'August', 'September', 'October', 'November', 'December']

請注意,這兩種解決方案都會引發包含無效月份字符串的列表。日期時間版本給出了更清晰的信息。ValueError


查看完整回答
反對 回復 2022-08-25
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您可以使用以下代碼獲得月份排序:


import datetime

months_dict = {}

for i in range(1,13):

    months_dict[datetime.date(2020, i, 1).strftime('%B').lower()] = i

print(months_dict)

# {'january': 0, 'february': 1, 'march': 2, 'april': 3, 'may': 4, 'june': 5, 'july': 6, 'august': 7, 'september': 8, 'october': 9, 'november': 10, 'december': 11}

然后,您可以使用函數對列表進行排序:sorted


months = ['August', 'September', 'October', 'November', 'December', 'January']

print(sorted(months, key=lambda x: months_dict[x.lower()]))

# ['January', 'August', 'September', 'October', 'November', 'December']


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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