Как передать vairable get () в dicitonary в python? - PullRequest
0 голосов
/ 13 ноября 2018

Я просто пытаюсь решить следующий вопрос

Вам назначена дата.Ваша задача - узнать, какой день у этой даты.Пример ввода: 08 10 2018

Я пришел к следующему решению:

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'))

Теперь он печатает «Нет», я ожидал, что это вернет значение ключа.

Даже print(result) возвращает значение 1 , а type(result) возвращает int .

Я хочу знать, почему я не получаю ожидаемый результат.Должен быть более питонический способ сделать это, но моя главная забота в том, как ведет себя get().

1 Ответ

0 голосов
/ 13 ноября 2018

Во-первых, days.get('result') пытается найти строку 'result' в вашем словаре, а не переменную result.

Во-вторых user_input.weekday() возвращает int, но ключи в вашем словарестроки, а не целые.

Это сработало бы:

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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...