有没有什么方法可以让我从一张单子里选择一个麻木的

2024-04-25 21:29:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经开始用python做一个小游戏了,但是有一次我遇到了一个问题。这是我正在运行的代码。你知道吗

我想做的是,在洗牌角色之后,给他们分配一个数字(我使用这个),然后我想能够选择一个数字(在这个例子中是0-3,因为有4个角色:Invest,One,Two,Three),它会告诉我我选择了哪个数字,谁被分配给那个数字(例如我会选择2,它会告诉我“3”被分配给2)。你知道吗

Roles = ["Investigator","One","Two","Three"]
random.shuffle(Roles)
n = random.randint(0,len(Roles)-1)
print(n+1)
print(Roles[n])
----------------------

Tags: 代码角色数字randomone例子threeroles
2条回答

你可以使用字典:

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)}

您还可以在洗牌之后enumerate角色,然后使用^{}从该枚举中选择一个(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')

相关问题 更多 >