2012-01-29 87 views
3

有沒有辦法將一個變量傳遞給列表的choice()函數。我有一堆列表,我想從一個列表中隨機選擇,然後使用返回的字符串從具有該字符串名稱的列表中進行選擇。Python中的隨機列表選項

A = ['1','2','3'] 

print choice (A) - this gets me a random choice from the list 

,但我想對選擇存儲爲一個變量,並用它來調用另一個列表

A = ['1','2','3'] 
1 = ['A','B','C'] 

Var1 = choice (A) 

print choice (Var1) *** this is my problem, how do I pass a variable to the choice function 

感謝您的幫助!

+2

'1 = ['A','B','C']'?!聖****! – 0605002 2012-01-29 19:27:16

+0

...它以'd'開頭......以't'結尾。這是四個字母。使用[dict](http://docs.python.org/tutorial/datastructures.html#dictionaries)。 – 2012-01-29 23:41:31

回答

13

在Python中,您可以使用引用來執行此操作。

A = [1, 2, 3] 
B = [4, 5, 6] 
C = [7, 8, 9] 
MasterList = [A, B, C] 

whichList = choice(MasterList) 
print choice(whichList) 

請注意,A, B, C是以前分配的變量的名稱,而不是帶引號的字符串。如果你發現自己使用帶引號的名稱來引用變量,通常有更好的方法來做任何你想做的事情。

+6

「如果您發現自己使用引用的名稱來引用變量,通常有更好的方法來做任何你想做的事情。」 +10 – DSM 2012-01-29 19:25:28

0
some_list = { 'A': ['1','2','3'], 
    'B': [some_other_list], 
    'C': [the_third_list] 
} 
var1= choice(['A', 'B', 'C']) # better: some_list.keys() 
print(choice (some_list[var1]) 

「如果你發現自己使用帶引號的名稱來引用變量,通常有一種更好的方式做任何你想要做的事。」

90%的時間,你應該使用字典。另外10%的時間,你需要完全停止你正在做的事情。

相關問題