如何从字典中随机选择一个项目?

2024-03-19

我是一个 python 初学者,试图制作二十一点游戏,并且一直不断收到有关此代码的多个关键错误

def rank(rank):
    rank={
        '2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'Jack':10,
       'King':10,'Queen':10,'Ace':1}
    return random.choice(rank)

当我尝试像这样调用函数时发生错误

def draw_card(card):
    card_rank=Card.rank(rank)
    card_suit=Card.suit(suit)
    card={card_suit:card_rank}
    return card

尝试使用“Card”类中的“rank”函数将属性应用于新的“card”变量


random.choice需要一个list (or tuple)在输入中(它需要整数可索引对象)。

所以只需转换rank字典(值,它是)到list然后选择一个值:像这样(我创建了一个新函数,因为rank(rank)位没有意义,你不需要参数来选择一张卡:

# globally defined (constant), pointless to define it locally, you may
# need it in another part of the program
rank={'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'Jack':10,
   'King':10,'Queen':10,'Ace':1}

def pick():       
    return random.choice(list(rank.values()))

list(rank.values()) is required在 python 3 中,字典值不再是list类型。也许您想预先计算此列表以节省计算时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从字典中随机选择一个项目? 的相关文章

随机推荐