3
我有想重新洗牌,像这样的OrderedDict:OrderedDict为什么不能被洗牌?
od = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
random.shuffle(od)
不幸的是,这并不工作(python3)和KeyError: 0
异常。 ,我已经工作的另一种方法是转换到一个列表,随机播放,并重建一个OrderedDict:
od_tmp = list(od.items())
random.shuffle(od_temp)
od = OrderedDict(od_tmp)
由于OrderedDict有一个顺序,似乎是合理的能够直接排序。转换为列表效率不高。
的问题是:
- 难道还有比上面的解决方案更好的办法? (不诉诸于使用清单)
- 为什么我不能洗牌OrderedDict?