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?