2017-04-07 4 views
7

とのランダムなサンプルを取得します。私はこのリストを持って、交換

これを実行すると、唯一の任意の繰り返し文字私に4通のユニークな手紙を与えませんが、決してます:

print(random.sample(colors,4)) 

は、私は可能な文字を繰り返すことで、4色のリストを取得するにはどうすればよいですか?

答えて

9

print([random.choice(colors) for _ in colors]) 

必要な値の数がrangeを使用し、その後、リスト内の値の数に対応していない場合:

print([random.choice(colors) for _ in range(7)]) 

投稿者:Python 3.6 onwaまた、random.choices(複数)を使用して、必要な値の数をk引数として指定することもできます。

0

このコードを入力すると、必要な結果が得られます。あなたと他のユーザーがプロセスに従うのを助けるために、各行にコメントを追加しました。お気軽に質問してください。

import random 

colours = ["R", "G", "B", "Y"] # The list of colours to choose from 
output_Colours = []    # A empty list to append results to 
Number_Of_Letters = 4   # Allows the code to easily be updated 

for i in range(Number_Of_Letters): # A loop to repeat the generation of colour 
    output_Colours.append(random.sample(colours,1)) # append and generate a colour from the list 

print (output_Colours) 
6

のPython 3.6では、新しいrandom.choices()関数が直接問題に対処します:

>>> from random import choices 
>>> colors = ["R", "G", "B", "Y"] 
>>> choices(colors, k=4) 
['G', 'R', 'G', 'Y'] 
関連する問題