擅长:python、mysql、java
<p>可以通过枚举列表为列表的元素赋值</p>
<pre><code> cards = [
"Ace", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "10", "Jack", "Queen", "king"]
# select random card
card = random.choice(cards)
# Get value of selected card
card_val = 0
for i, j in enumerate(cards, 1):
if j == card:
card_val = i
</code></pre>
<p>然而,这种方法对于您的用例来说是有缺陷的。我相信Jack、Queen和King卡在Blackjack中都应该有一些特殊的值,这些值与枚举中的值不对应。此外,每次要进行选择时都必须创建枚举既嘈杂又低效</p>
<p>我建议您使用元组列表</p>
<pre><code> cards = [
("Ace", 1), ("1", 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)]
# Select a random card
card = random.choice(cards)
# Get string representation of selected card
card_string = card[0]
# Get value of selected card
card_value = card[1]
# The sample game run shown in your question might look like this
card1 = random.choice(cards)
card2 = random.choice(cards)
card_total = card1[1] + card2[1]
</code></pre>