2017-02-16 153 views
-1
import random 
global colours 
global current 
colours = ["Red","Yellow","Blue","Green","Orange","White"] 
current = [] 

def randompicker(): 
    for i in range(4): 
     current = random.choice(colours) 
randompicker() 
print(colours) 
print(current) 

嘿,因此,上述程序是应该随机添加元素的4从列表中称为颜色到名为电流另一个列表。我已浏览论坛,但我无法找到针对此案例的具体帮助。Python,如何随机添加/追加元素从一个列表到另一个?

总之,是否有一个快速和有效的方式来增加从一个列表4种随机元素直接到另一个?

感谢

回答

1

要解决你的原代码,做

current.append(random.choice(colours)) 

,而不是

current = random.choice(colours) 

您还应该current一个局部变量,并返回它,而不是一个全局变量。在相同的情况下,您应该将选择数组作为参数传递,而不是在全局变量目录上工作。这两项更改都会为您的功能带来更大的灵活性。

+0

嘿感谢您的回答,是有办法,我能做到这一点不重复? – JayHunkys

+0

@JayHunkys肯定。换句话说,你需要检查'current'列表,看它是否已经包含下一个选项,然后再附加它。看我如何从英文描述解决方案开始?我把它留给你,你也可以再细化一下,这样你就可以将它翻译成代码。 –

+0

@JayHunkys或者,你可以使用'set'将做检查你 –

6

你描述的random.sample的基本用法。

>>> colours = ["Red","Yellow","Blue","Green","Orange","White"] 
>>> random.sample(colours, 4) 
['Red', 'Blue', 'Yellow', 'Orange'] 

如果你想允许重复,(在Python 3.6新)使用random.choices来代替。

>>> random.choices(colours, k=4) 
['Green', 'White', 'White', 'Red'] 
相关问题