2016-12-15 90 views
0
OriginalName = ["a", "b", "c"] 

ShuffleList = random.shuffle(OriginalName) 
print ShuffleList 

當我運行上面的代碼時,它返回'None'。我正在嘗試創建一個新的列表,一旦它被洗牌。是否可以從混洗列表創建新列表?

我想創建已隨機創建另一個列表,並且可以像["c", "a", "b"]

+1

THRE的一個類似的問題在這裏:http://stackoverflow.com/questions/976882/shuffling-a -use-list-of-objects-in-python'random.shuffle'這樣做就是這樣,所以返回None並且改變原始數據 - 要麼複製它,要麼使用random.sample(OriginalName,len(OriginalName))'而不是 – doctorlove

回答

9

random.shuffle是重新組織原始列表 - 你只是一個清單的工作。

嘗試像

OriginalName = ["a", "b", "c"] 
ShuffleList = list(OriginalName) # making a new list copy 

random.shuffle(ShuffleList) 

現在你有兩個名單,原來和洗牌。

附註:確保使用蛇殼(original_name而不是OriginalName)。這是Python的慣例。

+0

I w ant另一個列表,它是隨機創建的,並且類似於'[「c」,「a」,「b」]'。這可能嗎? – NorthernStars

+0

是的,'ShuffeList'是你的原始列表的副本,然後在答案中混洗。 –

3

先創建新列表,然後洗牌。

shuffled = OriginalName[:] 
random.shuffle(shuffled) 
print shuffled 
0

我會用random.sample

import random 
l = list(range(5)) 
print(random.sample(l, len(l))) 

印像

[4, 0, 2, 1, 3]