Как получить значения из словаря?
Столкнулась с такой проблемой. Программа должна выводить значение словаря, после введения нужно ключа.
Например: Я ввожу Jack 5 раз подряд,то на выходе я должна получить массив [11, 11, 11, 11, 11]. Но так не происходит, подскажите где я совершила ошибку и помогите исправить.
Заранее вас, очень-очень благодарю.
deck = {'2': 2, '3': 3, '4': 4, '5': 5,
'6': 6, '7': 7, '8': 8, '9': 9, '10': 10,
'Jack': 11, 'Queen': 12, 'King': 13, 'Ace': 14}
inputs = []
for i in range(5):
inputs.append(input())
print(inputs)
if inputs == deck.keys():
print(deck.values())
Ответы (3 шт):
Используйте проверку с помощью оператора in.
Обратите внимание, что проще значение, возвращаемое из input() присвоить в переменную:
deck = {'2': 2, '3': 3, '4': 4, '5': 5,
'6': 6, '7': 7, '8': 8, '9': 9, '10': 10,
'Jack': 11, 'Queen': 12, 'King': 13, 'Ace': 14}
for i in range(5):
key = input()
print(key)
if key in deck:
print(deck[key])
deck = {'2': 2, '3': 3, '4': 4, '5': 5,
'6': 6, '7': 7, '8': 8, '9': 9, '10': 10,
'Jack': 11, 'Queen': 12, 'King': 13, 'Ace': 14}
Res = []
for i in range(5):
key = input()
print(key)
if key in deck:
Res.append(deck[key])
print(Res)
Раз вам нужен на выходе массив, то этот способ будет лучше
Ошибок несколько.
Вот здесь
if inputs == deck.keys():
вы сравниваете то, что ввели, на равенство с ключами словаря. Ключи словаря выглядят примерно так:
['King', 'Ace', '10', 'Queen', '3', '2', '5', '4', '7', '6', '9', '8', 'Jack']
Понятно, что вы такое не вводили.
Вот здесь
print(deck.values())
вы хотите вывести ВСЕ значения, которые есть в словаре, а не только то, которое соответствует введенному ключу.
Остальное см. ответ @andrybak.