2016-07-28 91 views

回答

3

下面的代码将创建一个字典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} 
+0

要得到一个名称为键的字典,需要反转名称和数字的顺序:'d = dict(zip(calendar.day_name,range(7)))'或'd = {day:num for(num,day)in enumerate(calendar.day_name)}' –

0

目前还不清楚你问什么。如果你想创建一个像一个你表现出了字典

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} 
0

执行此操作的简单方法是使用字典理解和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)) 

也有可能使这个dictdatetime,如果你真的想。例如,

from datetime import datetime, timedelta 

oneday = timedelta(1) 
day = datetime.today() 
days = {} 
for _ in range(7): 
    days[day.strftime('%A')] = day.weekday() 
    day += oneday 

但使用日历是简单&更有效。