facevalue={'A':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'J':10,'Q':10,'K':10}
deck = [key for key in self.facevalue.keys()]*4
card_values = [value for value in self.facevalue.values()]*4
这是一张卡片,即二十一点卡片。
需要帮助来定义hand_value
函数。
import random
shuffled_deck = random.sample(deck, len(deck))
当我弹出两张牌时,我如何获得相应的值?问题是在洗牌后密钥和值不再在一起。说
def hand_value():
hand = []
for i in range(2):
hand.append(shuffled_deck.pop())
score = ???
return score
与hand[0]
和hand[1]
对应的值是什么?
让我重新说一下 - 在分解字典之后,有没有办法将以前的密钥与其对应的值匹配?
答案 0 :(得分:2)
deck
仅包含密钥;要获得匹配的面值,只需再次查找它们:
[facevalue[card] for card in hand]
这会产生一个拾取手的值列表;您还可以使用sum()
和生成器表达式来生成它们的总数:
score = sum(facevalue[card] for card in hand)