10

当我介绍新对时,它会插入字典的开头。是否可以在最后附加它?

4

5 回答 5

19

更新

从 Python 3.7 开始,字典会记住插入顺序。通过简单地添加一个新值,您可以确定如果您遍历字典,它将是“最后”。


字典没有顺序,因此没有开始或结束。显示顺序是任意的。如果您需要订购,可以使用 a listof tuples 代替 a dict

In [1]: mylist = []

In [2]: mylist.append(('key', 'value'))

In [3]: mylist.insert(0, ('foo', 'bar'))

您将能够轻松地将其转换为dict以后的:

In [4]: dict(mylist)
Out[4]: {'foo': 'bar', 'key': 'value'}

或者,collections.OrderedDict按照 IamAlexAlright 的建议使用 a。

于 2012-11-05T19:51:39.060 回答
7

Python 中的Adict不是“有序”的 - 在 Python 2.7+ 中有collections.OrderedDict,但除此之外 - 不... Python 中字典的关键点是有效的 key->lookup value... 你看到它们的顺序取决于哈希算法是完全任意的......

于 2012-11-05T19:53:14.050 回答
5

否。检查集合模块中的 OrderedDict。

于 2012-11-05T19:53:03.050 回答
0

如果您将数据添加到字典,则字典数据是有序集合,请使用: 添加新的键值对

Dic.update( {'key' : 'value' } )

如果键是字符串,您可以直接添加而无需花括号

Dic.update( key= 'value' )
于 2020-06-08T12:22:00.487 回答
0

如果您打算将更新的值移到末尾,dict则可以先弹出键,然后更新dict.

例如:

In [1]: number_dict = {str(index): index for index in range(10)}
In [2]: number_dict.update({"3": 13})
In [3]: number_dict
Out[3]: 
{'0': 0,
 '1': 1,
 '2': 2,
 '3': 13,
 '4': 4,
 '5': 5,
 '6': 6,
 '7': 7,
 '8': 8,
 '9': 9}

In [4]: number_dict = {str(index): index for index in range(10)}
In [5]: number_dict.pop("3", None)
In [6]: number_dict.update({"3": 13})
In [7]: number_dict
Out[7]: 
{'0': 0,
 '1': 1,
 '2': 2,
 '4': 4,
 '5': 5,
 '6': 6,
 '7': 7,
 '8': 8,
 '9': 9,
 '3': 13}
于 2022-01-26T23:29:56.537 回答