我在Python 3.4中有以下代码
message = {'function':'TIME_SERIES_INTRADAY',
'symbol':'MSFT',
'interval':'15min',
'apikey':'demo'}
for key1 in message:
print(key1)
上面的代码总是在每次运行时以不同的顺序打印密钥。有没有办法按顺序分配它?
答案 0 :(得分:2)
默认情况下不对Python字典键进行排序。如果您需要它们是一致的,并按照您填写字典的顺序使用有序的字典。
编辑:OrderedDict自Python 3.1开始引入,即使在Python 3.6中仍然有效
您可以详细了解here。
答案 1 :(得分:1)
要扩展我的评论,请在3.6这个字典中填写:
a = {r: r for r in range(100)}
打印为0-99
但是,如果我们这样做:
for r in range(50):
a.pop(r)
for r in range(10):
a[r] = r
for r in range(10):
a[r + 100] = r + 100
我们发现令人惊讶的情况是它打印0-9,50-99,100-109所以原始的50-99保持在插入顺序中,但不知何故后来添加到开头的位置(0-9)然后在最后(100-109)。