在Python 3中更改dict中的键顺序,7+

ruarlubt  于 2023-05-02  发布在  Python
关注(0)|答案(1)|浏览(123)

由于dict对象在Python 3中有本机键顺序。7+(https://docs.python.org/3/whatsnew/3.7.html),应该有一种方法来管理订单。有没有官方文件可以让我读到?
在我的特殊情况下,我想解决这样的问题不创建一个新的字典
1.在开始处添加新的键值对。
1.按键对字典中的记录进行排序。
对于第一个:

dct = {'b': 5, 'c': 6}
dct['a'] = 4  # What should be here
print(dct)  # I want it to be {'a': 4, 'b': 5, 'c': 6}

对于第二个:

dct = {'b': 5, 'c': 6, 'a': 4}
dct.sort_somehow('...')  # What should be here
print(dct)  # I want it to be {'a': 4, 'b': 5, 'c': 6}
qojgxg4l

qojgxg4l1#

如果你必须在原地改变dict,可以使用.clear()来清除它,然后使用.update来放入新的值。

>>> dct = {'b': 5, 'c': 6, 'a': 4}
>>> sorted_key_values = sorted(dct.items())
>>> dct.clear()
>>> dct.update(sorted_key_values)
>>> dct
{'a': 4, 'b': 5, 'c': 6}

注意,这仍然消耗与dict中的键/值的数量成比例的内存量。就地排序是非常困难或不可能的(因为不使用任何额外的内存),请参阅python - Sort dict in-place - Stack Overflow。

相关问题