2016-06-15 68 views
0

我在Stack Overflow上看到的一個類似問題涉及到一個列表字典(是一個錯誤的標題),當我在每個答案的列表中使用random.shuffle時,它使整個對象一個無類型的對象。隨機混洗詞典列表

我的詞典列表有點像這樣:

[ 
{'a':'1211', 'b':'1111121','c':'23423'}, 
{'a':'101', 'b':'2319','c':'03431'}, 
{'a':'3472', 'b':'38297','c':'13048132'} 
] 

我想,隨機混合這樣。

[ 
{'a':'3472', 'b':'38297','c':'13048132'}, 
{'a':'1211', 'b':'1111121','c':'23423'}, 
{'a':'101', 'b':'2319','c':'03431'} 
] 

我該怎麼做?

+0

'random.shuffle'應該可以工作。不知道爲什麼它會給你一個None類型的對象。 – RobertR

+0

如果你想隨機地亂序列表中的元素,而不管它們是什麼,只需使用['random.shuffle'](https://docs.python.org/3/library/random.html#random.shuffle )。否則,通過隨機洗牌來定義你的意思。請注意,'random.shuffle' **修改**原始列表。使用它:'my_list = [...]; random.shuffle(my_list); print(my_list)' – Bakuriu

+5

'random.shuffle'將列表重新排序並返回'None'。當你應該在沒有賦值的情況下執行'random.shuffle(x)'時,你可能正在執行'x = random.shuffle(x)'。 –

回答

2

random.shuffle應該工作。究其原因,我認爲你認爲這是給你一個無類型對象,是因爲你在做喜歡

x = random.shuffle(...) 

random.shuffle東西並不返回任何東西,它會修改到位列表

x = [{'a':'3472', 'b':'38297','c':'13048132'}, 
    {'a':'1211', 'b':'1111121','c':'23423'}, 
    {'a':'101', 'b':'2319','c':'03431'}] 
random.shuffle(x) # No assignment 
print(x)