[解決済み] 集合からランダムな選択? python
2022-05-14 15:32:51
質問
推理ゲームのAI部分を作っています。AI にこのリストからランダムに文字を選択させたいと考えています。私はそれをセットとして行っているので、ゲーム内で推測された文字をリストから簡単に削除することができ、したがって、再び推測することができなくなります。
次のように記述します。
set
オブジェクトがインデックス化されていません。どのように私はこれを回避することができますか?
import random
aiTurn=True
while aiTurn == True:
allLetters = set(list('abcdefghijklmnopqrstuvwxyz'))
aiGuess=random.choice(allLetters)
print (aiGuess)
どのように解決するのですか?
注(2020年10月)。
v3.9 の時点で、Python は
公式に非推奨となりました。
random.sample()
は、セットを渡す前に明示的にリストまたはタプルに変換することを公式指針として、セット上で動作します。
>>> random.sample(set('abcdefghijklmnopqrstuvwxyz'), 1)
['f']
ドキュメンテーション https://docs.python.org/3/library/random.html#random.sample
なお、集合からランダムに要素を選択することは 極めて非効率的です。 それはセットのサイズに比例して時間がかかり、セットの基礎となるハッシュ テーブルが削除された要素のためにまばらである場合は、さらに悪くなります。
代わりに、おそらく 別のデータ構造 を使うべきでしょう。
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Pythonでnumpy.linalg.eigを使用した後の固有値と関連する固有ベクトルのソート
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] タプルの代わりにリストで出力するZip
-
[解決済み] IPythonの終了確認を無効にする
-
[解決済み] virtualenvのどこにカスタムコードを置くか?
-
[解決済み] Pythonで文字列が数字で始まるかどうかを判断するには?
-
[解決済み] ne__は__eq__の否定として実装されるべきか?
-
[解決済み] Pythonで文字列のb-プレフィックスを取り除くには?