如何在Python的字典中传递vairable to get()?

时间:2018-11-13 14:16:56

标签: python dictionary scripting

我只是想解决以下问题

您有个约会。您的任务是查找当天的星期几。 输入样本:2018年10月10日

我想出了以下解决方案:

days={'0':'monday','1':'tuesday','2':'wed','3':'thurs','4':'friday','5':'sat','6':'sun'}

user_input=datetime.datetime(2018, 11 ,6)

result=user_input.weekday()
print (days.get('result'))

现在它打印'None',我期望它返回键值。

即使print(result)返回的值是 1 ,而type(result)返回的值是 int

我想知道为什么我没有得到预期的输出。 必须有一种更Python的方法来执行此操作,但是我主要关心的是get()的行为方式。

1 个答案:

答案 0 :(得分:1)

首先,days.get('result')试图在字典中查找字符串'result',而不是变量result

第二个user_input.weekday()返回一个整数,但是字典中的键是字符串,而不是整数。

这本来可以工作的:

days = {0:'monday', 1:'tuesday', 2:'wed', 3:'thurs', 4:'friday', 5:'sat', 6:'sun'}
user_input = datetime.datetime(2018, 11, 6)
result = user_input.weekday()
print(days.get(result)) # or simply print(days[result])

但是,由于可能的天数范围是数字0到6,因此列表同样适用。

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
user_input = datetime.datetime(2018, 11, 6)
result = user_input.weekday()
print(days[result])