2016-06-15 70 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)