2016-08-30 12 views
0

random.choiceの使い方はありますか?2つのリストのいずれかに数字を追加しますか?それがより明確に作る、これはこれまでのところ私のコードです:ランダムな選択肢を2つのリストで使用する方法

mylist_pos = [] 
mylist_neg = [] 

if score > 0: 
    mylist_pos.append(str(score) + 'positive') 
elif score < 0: 
    mylist_neg.append(str(score) + 'negative') 
else: 
    n = [mylist_pos, mylist_neg] 
    add_zero = random.choice(n) 
    add_zero.append(score) 

は私がmylist_posに番号> 0を追加したい、mylist_negと数字== 0のすべての数< 0は、無作為に2つのリストのいずれかに割り当てる必要がありますmylist_posまたはmylist_negの一部になります。私はrandom.choiceで試しましたが、私の構文に何か間違っています。 :/誰かが私のコードで何が間違っていますか? ありがとう!

+6

私たちにあなたが得た、完全なエラーメッセージを表示します。あなたの構文は私にはうまく見えます。あなたは実際に '無作為輸入'を忘れましたか? – user2357112

+0

あなたが持っているコードは完全に有効な構文です。もしあなたがSyntaxErrorを取得していれば、より多くのコード全体を表示する必要があります。 –

+0

インデントもチェックしてください。スペースは4桁でなければなりません。 – ozgur

答えて

1

あなたのコードは私の最後では正常に実行されますが、elseブロックのこの行でもどちらのリストにもランダムに0が割り当てられます。 import randomにしてください。

mylist_neg.append(0) if random.choice([True, False]) else mylist_pos.append(0) 
1

コードは正常に動作しています。ここでは、私がテストにそれを記入方法は次のとおりです。

import random 
mylist_pos = [] 
mylist_neg = [] 

for score in [-3, 3, 2, -2, 1, -1, 0, 0, 0, 0, 0]: 
    if score > 0: 
     mylist_pos.append(str(score) + 'positive') 
    elif score < 0: 
     mylist_neg.append(str(score) + 'negative') 
    else: 
     n = [mylist_pos, mylist_neg] 
     print "n =", n 
     add_zero = random.choice(n) 
     add_zero.append(score) 

print mylist_pos 
print mylist_neg 

出力:

n = [['3positive', '2positive', '1positive'], ['-3negative', '-2negative', '-1negative']] 
n = [['3positive', '2positive', '1positive', 0], ['-3negative', '-2negative', '-1negative']] 
n = [['3positive', '2positive', '1positive', 0], ['-3negative', '-2negative', '-1negative', 0]] 
n = [['3positive', '2positive', '1positive', 0], ['-3negative', '-2negative', '-1negative', 0, 0]] 
n = [['3positive', '2positive', '1positive', 0], ['-3negative', '-2negative', '-1negative', 0, 0, 0]] 
['3positive', '2positive', '1positive', 0, 0] 
['-3negative', '-2negative', '-1negative', 0, 0, 0] 
関連する問題