【发布时间】:2020-05-23 16:23:50
【问题描述】:
任务是将人类可读的时间范围解析为 python 友好。时间范围只能包括以下格式:
- '9:00 AM–9:45 PM'
- '9:00 AM - 午夜'
- '9:00 AM-中午'
- '中午 - 晚上 9:45'
- '中午 - 午夜'
- '24 小时'
以下代码适用于除“24 小时”以外的所有情况。
data = ['9:00 AM–9:45 PM',
'9:00 AM–Midnight',
'9:00 AM–Noon',
'9:00 PM–10:00 PM',
'Noon–9:45 PM',
'Noon–Midnight',
'24 Hours']
for slot in data:
print([[time(0, 0), time(23, 59)] if item == "24 Hours" # Need help here
else time(12, 0)if item == "Noon"
else time(0, 0)if item == "Midnight"
else datetime.strptime(item, "%I:%M %p").time()
for item in slot.split("–")] )
输出:
[datetime.time(9, 0), datetime.time(21, 45)]
[datetime.time(9, 0), datetime.time(0, 0)]
[datetime.time(9, 0), datetime.time(12, 0)]
[datetime.time(21, 0), datetime.time(22, 0)]
[datetime.time(12, 0), datetime.time(21, 45)]
[datetime.time(12, 0), datetime.time(0, 0)]
[[datetime.time(0, 0), datetime.time(23, 59)]] # Need help here
虽然我部分可以,但输出是24 hours 的列表列表。我只是在寻找一个清单。
有人可以帮我解决这个问题吗?
提前致谢。
【问题讨论】:
标签: python-3.x iterator list-comprehension python-datetime