问题描述
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)
嘿,因此上述程序应该将名为color的列表中的4个元素随机添加到另一个名为current的列表中。 我浏览了各个论坛,但找不到针对此案例的帮助。
简而言之,是否有一种快速有效的方法将一个列表中的4个随机元素直接添加到另一个列表中?
谢谢
1楼
您正在描述的基本用法。
>>> colours = ["Red","Yellow","Blue","Green","Orange","White"]
>>> random.sample(colours, 4)
['Red', 'Blue', 'Yellow', 'Orange']
如果要允许重复,请改用 (Python 3.6中的新增功能)。
>>> random.choices(colours, k=4)
['Green', 'White', 'White', 'Red']
2楼
要修复原始代码,请执行
current.append(random.choice(colours))
代替
current = random.choice(colours)
您还应该使current
为局部变量并返回它,而不是全局变量。
同样,您应该将选择数组作为参数传递,而不是在全局变量目录中使用。
这两个更改都将为您的功能提供更大的灵活性。