我正在嘗試為給定的一組鍵創建一個有序的 dic。我要去的結構是` OrderedDict([('A', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), ('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), ('C', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), ('D', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])])`這是由以下函數創建的。d = OrderedDict.fromkeys(keys, [0 for _ in range(10)])我成功地獲得了所需的結構。問題是 dict 的所有值都被創建為引用。這意味著當我嘗試執行以下操作時,d['A'][1] = "11111" 它會更改給定每個鍵的值。我得到如下結果。 OrderedDict([('A', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0]), ('B', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0]), ('C', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0]), ('D', [0, '11111', 0, 0, 0, 0, 0, 0, 0, 0])])我確實嘗試過 deepcopy 但并沒有真正幫助。我目前的工作是d['A'] = d['A'][:]我不太喜歡上面的解決方案,因為我有大約6mil keys and values.. 所以這樣做有點麻煩。我想知道這樣做的更好方法..以及為什么會這樣。
添加回答
舉報
0/150
提交
取消