2017-02-16 147 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'] 
相關問題