2016-03-22 199 views
3
from random import shuffle 
x = [[i] for i in range(10)] 
shuffle(x) 

我試圖在python上做一個基本的內存遊戲。上面是我目前的代碼,用於在列表中生成隨機數字,但我希望它打印出一個字符串,而不是一個整數,例如每次打印時都要用「鴨子」代替#5。當我輸入類似:在列表上打印一個字符串而不是整數

print(x[4]) 

任何幫助,將不勝感激

+0

'duck'而不是'5',而不是'7','2'或'3'例如? –

+0

你有你的字符串元素的列表,或者你想要一個通用的方法嗎? – Sourav

回答

3

的一種方法是把所有的選項列表,然後使用random.suffle()洗牌就地內容。如果您不想修改原始列表,請務必先複製一份。

items = ['duck', 'goose', 'swan'] 
random.shuffle(items) 

# ['goose', 'duck', 'swan'] 

如果你真的需要跟蹤他們的(即原來的指數)來到這裏的,你可以使用一個元組來保存您的項目原來的索引,然後混洗。

tupled_items = [x for x in enumerate(items)] 
random.shuffle(tupled_items) 

# [(1, 'goose'), (0, 'duck'), (2, 'swan')] 
1

如果你想爲一個字符串列表一個通用的答案,然後按照下面的代碼: -

from random import shuffle 
string_list = ['a', 'b', 'c'] 
result = shuffle(string_list) 
print(string_list) 
相關問題