Python,如何从一个列表中随机添加/追加元素到另一个列表?

时间:2017-02-16 19:57:08

标签: python arrays list random append

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个随机元素直接添加到另一个列表中?

由于

2 个答案:

答案 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) 为局部变量并返回它而不是全局变量。同样,您应该将选择数组作为参数传递,而不是在全局变量目录上工作。这两项更改都将为您的功能提供更大的灵活性。