在此尋找幫助/解決方案。Python列表隨機選擇
a = [1,2,3]
b = [1,2,3]
c = [1,2,3]
d = [a,b,c]
random.choice(random.choice(d))
這給了我1,2或3。但如何找到這些列表變量用於出a
,b
,c
這個隨機函數?我如何使用或索引函數的語法是什麼?對於我的程序,我必須彈出隨機選擇返回的元素。
在此尋找幫助/解決方案。Python列表隨機選擇
a = [1,2,3]
b = [1,2,3]
c = [1,2,3]
d = [a,b,c]
random.choice(random.choice(d))
這給了我1,2或3。但如何找到這些列表變量用於出a
,b
,c
這個隨機函數?我如何使用或索引函數的語法是什麼?對於我的程序,我必須彈出隨機選擇返回的元素。
如果您想從隨機選擇的列表中刪除某些內容,則不需要具有變量名稱。 列表對象本身將會做。
換句話說,單純從結果中刪除選定的數random.choice()
爲您提供:
picked_list = random.choice(d)
picked = random.choice(picked_list)
picked_list.remove(picked)
如果你必須有一些樣的名字,不使用單獨的變量輸入列表。使用字典:
lists = {
'a': [1, 2, 3],
'b': [1, 2, 3],
'c': [1, 2, 3],
}
list_picked = random.choice(lists) # returns 'a', 'b', or 'c'
picked = random.choice(lists[list_picked])
lists[list_picked].remove(picked)
注意,這將是更有效的,只是洗你的名單上前面(把他們隨機順序),然後在彈出的元素,你需要他們:
d = [a, b, c]
for sublist in d:
random.shuffle(sublist)
# later on
picked = random.choice(d).pop() # remove the last element
儘管如此,你必須弄清楚這裏有一個空的列表意味着什麼。
非常感謝。這絕對符合我的編碼標準。 – Kuladip
@Kuladip:很高興能有幫助!如果您覺得它對您有用,請隨時[接受我的回答](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 :-) –
所以只需從'random.choice()'給你的列表對象直接彈出。您不需要變量名稱,只需要列表對象本身。 –