Python 日期时间工作日数字代码 - 动态?
Python datetime weekday number code - dynamically?
获取工作日编号,
import datetime
print datetime.datetime.today().weekday()
输出是一个整数,它在 0 - 6 范围内,指示星期一在 doc-weekday
为 0
我想知道如何从 Python
中获取值
我希望动态创建字典,例如,
{'Monday':0, 'Tuesday':1,...}
以下代码将创建一个具有所需值的字典 d
>>> import calendar
>>> d=dict(enumerate(calendar.day_name))
>>> d
{0: 'Monday', 1: 'Tuesday', 2: 'Wednesday', 3: 'Thursday', 4: 'Friday', 5: 'Saturday', 6: 'Sunday'}
编辑:@mfripp 下面的评论给出了更好的方法
>>> d=dict(zip(calendar.day_name,range(7)))
>>> d
{'Monday': 0, 'Tuesday': 1, 'Friday': 4, 'Wednesday': 2, 'Thursday': 3, 'Sunday': 6, 'Saturday': 5}
不清楚您的要求。如果您想要今天是星期几,以文本形式显示,您可以这样做:
import datetime
print datetime.datetime.today().strftime('%A')
如果你想像你展示的那样创建一本字典,你可以这样做:
import datetime
# make a list of seven arbitrary dates in a row
dates=[datetime.date.fromtimestamp(0) + datetime.timedelta(days=d) for d in range(7)]
# make a dictionary showing the names and numbers of the days of the week
print {d.strftime('%A'): d.weekday() for d in dates}
执行此操作的简单方法是使用字典理解和 calendar
模块。
import calendar
days = {name: i for i, name in enumerate(calendar.day_name)}
print(days)
输出
{'Thursday': 3, 'Friday': 4, 'Tuesday': 1, 'Monday': 0, 'Wednesday': 2, 'Saturday': 5, 'Sunday': 6}
Python 2.6 及更早版本没有字典理解,但您可以将生成器表达式传递给 dict
构造函数。
days = dict((name, i) for i, name in enumerate(calendar.day_name))
如果您真的愿意,也可以用 datetime
来实现 dict
。例如,
from datetime import datetime, timedelta
oneday = timedelta(1)
day = datetime.today()
days = {}
for _ in range(7):
days[day.strftime('%A')] = day.weekday()
day += oneday
但使用日历更简单、更高效。
获取工作日编号,
import datetime
print datetime.datetime.today().weekday()
输出是一个整数,它在 0 - 6 范围内,指示星期一在 doc-weekday
为 0我想知道如何从 Python
中获取值我希望动态创建字典,例如,
{'Monday':0, 'Tuesday':1,...}
以下代码将创建一个具有所需值的字典 d
>>> import calendar
>>> d=dict(enumerate(calendar.day_name))
>>> d
{0: 'Monday', 1: 'Tuesday', 2: 'Wednesday', 3: 'Thursday', 4: 'Friday', 5: 'Saturday', 6: 'Sunday'}
编辑:@mfripp 下面的评论给出了更好的方法
>>> d=dict(zip(calendar.day_name,range(7)))
>>> d
{'Monday': 0, 'Tuesday': 1, 'Friday': 4, 'Wednesday': 2, 'Thursday': 3, 'Sunday': 6, 'Saturday': 5}
不清楚您的要求。如果您想要今天是星期几,以文本形式显示,您可以这样做:
import datetime
print datetime.datetime.today().strftime('%A')
如果你想像你展示的那样创建一本字典,你可以这样做:
import datetime
# make a list of seven arbitrary dates in a row
dates=[datetime.date.fromtimestamp(0) + datetime.timedelta(days=d) for d in range(7)]
# make a dictionary showing the names and numbers of the days of the week
print {d.strftime('%A'): d.weekday() for d in dates}
执行此操作的简单方法是使用字典理解和 calendar
模块。
import calendar
days = {name: i for i, name in enumerate(calendar.day_name)}
print(days)
输出
{'Thursday': 3, 'Friday': 4, 'Tuesday': 1, 'Monday': 0, 'Wednesday': 2, 'Saturday': 5, 'Sunday': 6}
Python 2.6 及更早版本没有字典理解,但您可以将生成器表达式传递给 dict
构造函数。
days = dict((name, i) for i, name in enumerate(calendar.day_name))
如果您真的愿意,也可以用 datetime
来实现 dict
。例如,
from datetime import datetime, timedelta
oneday = timedelta(1)
day = datetime.today()
days = {}
for _ in range(7):
days[day.strftime('%A')] = day.weekday()
day += oneday
但使用日历更简单、更高效。