Python 3.x 从数组中获取随机选择

Python 3.x 从数组中获取随机选择,python-3.x,Python 3.x,我尝试使用random.choice命令,但似乎不起作用。 狼已经被分配给暴徒了 class Wolf(Character): def __init__(self): super().__init__(name="wolf",hp=7,atk=6,df=4,inventory={},spells= {"bite": randint(3,6)},exp=8) c = random.choice(mob.spells) spower = mob.s

我尝试使用random.choice命令,但似乎不起作用。 狼已经被分配给暴徒了

class Wolf(Character):
    def __init__(self):
        super().__init__(name="wolf",hp=7,atk=6,df=4,inventory={},spells= 
{"bite": randint(3,6)},exp=8)

c = random.choice(mob.spells)            
spower = mob.spells[c]          
ad = mob.atk / hero.df          
damage = ad * spower          
damage = int(round(damage))
random.choice不起作用,因为您正在传递一个字典,它需要一些可以使用整数索引的内容。如果键是整数,则从字典中随机选择可能有效

d={'a':10,'b':20} 随机选择 上述代码将失败,但这将起作用:

d={1:10,0:20} 随机选择 这并不神奇,因为random.choice中的代码选择0和lenobj之间的随机整数,并返回该索引处的对象。下面的代码永远不会工作:

d={-1:10,2:20} 随机选择 这有时会奏效:

d={'a':10,0:20} 随机选择 在字典中查找随机索引没有任何意义

要在字典中获取随机键,请执行以下操作:

d={'a':10,-1:20,90:-90} random_key=random.choicelistd 在您的情况下,代码将是:

c=random.choicelistmob.spells
Random choice为您提供了一个元素,而不是它的索引。谢谢,但我如何随机找到索引?@Waterbin我在回答的末尾添加了您需要的代码这真的很有帮助,经过几个小时的努力,现在我终于知道我做错了什么。我在这里学到了一些东西,谢谢你的帮助。没问题,随时都可以,兄弟!