当我介绍新对时,它会插入字典的开头。是否可以在最后附加它?
问问题
19275 次
5 回答
19
更新
从 Python 3.7 开始,字典会记住插入顺序。通过简单地添加一个新值,您可以确定如果您遍历字典,它将是“最后”。
字典没有顺序,因此没有开始或结束。显示顺序是任意的。如果您需要订购,可以使用 a list
of tuple
s 代替 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 回答