コンセプト
random.choice は、指定されたシーケンスから要素をランダムに選択してそれを返すために使用される Python 組み込み関数です。リスト、タプル、文字列などの反復可能なオブジェクトに適用できます。
説明例
たとえば、random.choice 関数を使用して、リストから要素をランダムに選択できます。
import random
my_list = [12, 22, 345, 123, 521]
for index in range(0, 10):
random_element = random.choice(my_list)
print(random_element)
出力結果:
ご覧のとおり、戻り値は指定された範囲内で完全にランダムに生成されます。
利用可能なシナリオ
たとえば、ゲーム 2048 では、毎回のランダム値は 2 または 4 で、この 2 つの値のみです。以下は、2048 チェス盤のデータを初期化する関数で、random.choice を使用して配列内の 2 つのランダムな値を取得していることがわかります。
def init():
"""
初始化操作
:return:
"""
# 随机生成两个2或4并防止到棋盘中
for i in range(2):
while True:
# 棋盘位置
row = random.randint(0, 3)
col = random.randint(0, 3)
if data[row][col] == 0:
# 在数组重随机抽取2或4·棋盘数字
data[row][col] = random.choice([2, 4])
break
注意内容
注記:
1. この関数はシーケンスからランダムな要素を選択するために使用されるため、random.choice 関数を直接使用して辞書内のランダムなキーと値のペアを選択することはできません。辞書からランダムなキーと値のペアを選択する場合は、random.choice(list(dictionary.items())) メソッドを使用してこれを実現できます。
2.random.choice 関数を使用してランダムなブール値を選択することはできません。この関数が行うことは、指定されたシーケンスから要素をランダムに選択することです。ブール値の場合は、random.choice([True, False]) を使用してブール値をランダムに選択できます。
練習問題:
次のプログラムの出力は次のようになります。
リスト = [123,'ab',576,'xwyz']
print(ランダム.チョイス(リスト[3]))
A.123
B. アブ
C.576
D.Z
正解:D
ここではリスト内の添字が 3 の文字列の値をランダムに取得しているためです。文字列は文字配列で構成されているため、文字列内の文字はランダムに表示されます。D オプションのすべての z は可能な結果です。