2017-11-02 9 views
0

私は少しのゲームをパイソンで作り始めましたが、問題があって一点で立ち往生しました。これは私が今実行しているコードです。数字をつかむためにリストから選択できる方法はありますか

私がしたいことは、役割を入れ替えてから(これを使用していた)番号を割り当ててから、数字を選択できるようにすることです(この場合0-3 1つ、2つ、3つの役割の4つの役割があります)、選択した番号とその番号に割り当てられている人を教えてくれます(たとえば2を選択すると、3に2が割り当てられます)。 )。

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

あなたはリストの項目のインデックスを取得することを意味しますか? –

+0

'print(list(列挙(ロール)))' – alfasin

+1

私は少し混乱しています。あなたのコードはすでに問題を解決しているようです。 – Iguananaut

答えて

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 

、あなたのオリジナルのアイデアを解決する代替:またenumerateシャッフル後の役割、そしてrandom.choiceを使用することができ

final_data = {i:a for i, a in enumerate(Roles)} 
0

をその列挙から(index, value)のペアの1つを選択します。

>>> 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') 
関連する問題