Связывание значений в списке с целыми числами в Python

Я работаю над простой игрой в блэкджек.

deck = ['Ace',2,3,4,5,6,7,8,9,10,'Jack','Queen','King']

card_1 = random.choice(deck)
card_2 = random.choice(deck)

def my_hand(card_1,card_2):
    total = card_1 + card_2
    if total > 21:
        return "Bust!"
    elif total == 21:
        return "Blackjack!"
    elif total < 21:
        return "Hit again?"

print card_1,'and',card_2 
my_hand(card_1,card_2)

Как присвоить определенным элементам списка целочисленное значение? А именно, я хотел бы присвоить «Туз» целому числу 1 или 11, а «Валет», «Король» и «Дама» равны 10.

Спасибо.


person Spencer Timothy    schedule 31.12.2016    source источник
comment
Мне не ясно, чего вы хотите. Вы хотите обновить список deck? ИЛИ вы хотите сопоставить 'Ace' с 1 или 11 в другой структуре данных?   -  person Anonymous    schedule 31.12.2016
comment
Зачем начинать с таких имен, как Эйс и т. д., которые предназначены только для людей? Просто используйте числа для представления карточек во всей программе и переводите их в слова только для вывода людям. Тот факт, что компьютерные языки могут использовать цепочки букв, не означает, что это хорошая идея.   -  person Lee Daniel Crocker    schedule 05.01.2017


Ответы (1)


Используйте словарь (и я предлагаю вам преобразовать все ключи в строки):

deck = {'Ace':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,
 'Jack':10,'Queen':10,'King':10}
person DYZ    schedule 31.12.2016
comment
Это сработает, но глупо. Карты должны быть представлены просто числами, и только при выводе на человека преобразовываться в имена типа Туз. - person Lee Daniel Crocker; 05.01.2017