2017-12-23 16 views
0

私は、利用可能なリストから5つの乱数が選択され、それぞれが表示される短いスクリプトを作成しようとしています。私が抱えている問題は、結果を追加しているリストが整数や文字列ではなくリストを返すということです。ここでは、コードです:リストのPython項目はまだリストですか?

def randomStar(self): 
    choice = [5,4,3] 
    probability = [0.1, 0.2, 0.7] 
    star = random.choices(choice, probability) 
    return star 

multi = [] 
characters = [] 
for x in range(5): 
    star = randomStar(x) 
    multi.append(star) 
    x += 1 

for star in multi: 
    characters.append(star) 
print (characters) 
print (multi) 

どちらもマルチと文字のリストが返さ:

['[3]', '[3]', '[3]', '[5]', '[3]'] 

だから私は、私はまだリストを取得する「マルチ」のリストを反復処理しようとします。値を取得するにはどうすればよいですか?それとも、リストに数字が間違って追加されているのですか?

ありがとうございました。

+2

これはリストではありません。それらは文字列であり、リストを表します(あなたが表示する文字列は有効なリストリテラルです)。実際にどこにでも文字列に変換されていないとすれば、* how *ははっきりしません。実際の[mcve]を与えてください。 – jonrsharpe

+0

ok、各項目を表示すると、[3]、[4]などのようになります。 – davidb

+0

それは私が持っているすべてのコードですが、唯一のことは、ランダムモジュールをインポートしていることです。追加するものはほかにありません – davidb

答えて

2

random.choicesが「要素のkサイズのリスト」を返すので、それらはリストです。

リストには1つの要素しかありませんが、これが返すものであるため、return star[0]と書いてください。

+0

これはそれでした!ありがとう! – davidb

関連する問題