2016-08-30 31 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]