2016-08-30 29 views
0

有沒有辦法如何使用random.choice添加一個數字到兩個列表之一?使之更清楚,這是我到目前爲止的代碼:如何使用兩個列表的隨機選擇

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) 

我想添加號碼> 0至mylist_pos,所有數< 0至mylist_neg和數字== 0應該被隨機分配到其中一個列表中,以便它成爲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]