from random import shuffle
x = [[i] for i in range(10)]
shuffle(x)
我試圖在python上做一個基本的內存遊戲。上面是我目前的代碼,用於在列表中生成隨機數字,但我希望它打印出一個字符串,而不是一個整數,例如每次打印時都要用「鴨子」代替#5。當我輸入類似:在列表上打印一個字符串而不是整數
print(x[4])
任何幫助,將不勝感激
from random import shuffle
x = [[i] for i in range(10)]
shuffle(x)
我試圖在python上做一個基本的內存遊戲。上面是我目前的代碼,用於在列表中生成隨機數字,但我希望它打印出一個字符串,而不是一個整數,例如每次打印時都要用「鴨子」代替#5。當我輸入類似:在列表上打印一個字符串而不是整數
print(x[4])
任何幫助,將不勝感激
的一種方法是把所有的選項列表,然後使用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')]
如果你想爲一個字符串列表一個通用的答案,然後按照下面的代碼: -
from random import shuffle
string_list = ['a', 'b', 'c']
result = shuffle(string_list)
print(string_list)
你可以使用一些軟件包生成例如 https://pypi.python.org/pypi/RandomWords/0.1.5 隨機單詞,然後做一些事情像
from random_words import RandomWords
rw = RandomWords()
x = [rw.random_word() for _ in range(10)]
print x
如果你已經知道你要使用,使得它作爲一個字典,而這樣做的話Randomly shuffling a dictionary in Python
'duck'而不是'5',而不是'7','2'或'3'例如? –
你有你的字符串元素的列表,或者你想要一個通用的方法嗎? – Sourav