我已经开始在python中制作一个小游戏了,但是我遇到了一个有问题的问题。这是我现在正在运行的代码。
我想要做的是,在洗牌之后,给他们分配一个号码(我正在使用它),然后我希望能够选择一个号码(在这种情况下为0-3,因为那里)是4个角色:投资,一,二,三)它会告诉我我选择了哪个号码以及谁被分配到该号码(例如我会选择2,它会告诉我"三"被分配到2)。
Roles = ["Investigator","One","Two","Three"]
random.shuffle(Roles)
n = random.randint(0,len(Roles)-1)
print(n+1)
print(Roles[n])
----------------------
答案 0 :(得分:0)
您可以使用字典:
import random
Roles = ["Investigator","One","Two","Three"]
random.shuffle(Roles)
final_data = {}
for i in range(len(Roles)):
while True:
val = random.randint(0,len(Roles)-1)
if val not in final_data:
final_data[val] = Roles[i]
break
然而,替代原始想法的解决方案:
final_data = {i:a for i, a in enumerate(Roles)}
答案 1 :(得分:0)
您也可以在改组后enumerate
角色,然后使用random.choice
从该枚举中选择一个(index, value)
对。
>>> roles = ["Investigator","One","Two","Three"]
>>> random.shuffle(roles)
>>> roles = list(enumerate(roles))
>>> roles
[(0, 'Three'), (1, 'Two'), (2, 'Investigator'), (3, 'One')]
>>> random.choice(roles)
(2, 'Investigator')