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)
嘿,所以上面的程序应该从名为colors的列表中随机添加4个元素到另一个名为current的列表中。我查看了论坛,但我无法找到特定于此案例的帮助。
简而言之,是否有一种快速有效的方法可以将一个列表中的4个随机元素直接添加到另一个列表中?
由于
答案 0 :(得分:6)
您正在描述random.sample
的基本用法。
>>> colours = ["Red","Yellow","Blue","Green","Orange","White"]
>>> random.sample(colours, 4)
['Red', 'Blue', 'Yellow', 'Orange']
如果要允许重复项,请使用random.choices
代替(Python 3.6中的新增功能)。
>>> random.choices(colours, k=4)
['Green', 'White', 'White', 'Red']
答案 1 :(得分:1)
要修复原始代码,请执行
D = []
f1 = open("test.txt",'r')
for line in f1:
trans = line.split()
D.append(trans)
而不是
current.append(random.choice(colours))
您还应该使current = random.choice(colours)
为局部变量并返回它而不是全局变量。同样,您应该将选择数组作为参数传递,而不是在全局变量目录上工作。这两项更改都将为您的功能提供更大的灵活性。