私は推測ゲームのAI部分に取り組んでいます。 AIがこのリストからランダムな文字を選択するようにします。ゲーム内で推測された文字をリストから簡単に削除できるように、セットとしてやっているので、再び推測することはできません。
set
オブジェクトはインデックス化できません。これを回避するにはどうすればよいですか?
import random
aiTurn=True
while aiTurn == True:
allLetters = set(list('abcdefghijklmnopqrstuvwxyz'))
aiGuess=random.choice(allLetters)
print (aiGuess)
>>> random.sample(set('abcdefghijklmnopqrstuvwxyz'), 1)
['f']
ドキュメント: https://docs.python.org/3/library/random.html#random.sample
random.choice(Tuple(myset))
を使用する必要があります。これは、random.sample
。私はテストするために以下を書きました:
import random
import timeit
bigset = set(random.uniform(0,10000) for x in range(10000))
def choose():
random.choice(Tuple(bigset))
def sample():
random.sample(bigset,1)[0]
print("random.choice:", timeit.timeit(choose, setup="global bigset", number=10000)) # 1.1082136780023575
print("random.sample:", timeit.timeit(sample, setup="global bigset", number=10000)) # 1.1889629259821959
数字から、random.sample
は7%長くかかります。