我有以下字典:
dictionary = {'key5':10, 'key2':20}
dictionary["key3"] = 21
dictionary["key1"] = 22
dictionary["key2"] = 23
sorted(dictionary.keys())
for key,value in dictionary.items():
print(key)
排序和打印后,值如下所示:
key5
key1
key2
key3
为什么不是" key5"持续多久?
答案 0 :(得分:7)
这是因为sorted(dictionary.keys())
实际上是gives you a list的排序键,它不修改集合本身,以便键出来排序。从那个链接(我的大胆):
从 iterable中的项目中返回新排序列表。
您正在调用sorted
来获取已排序的键列表,但之后您基本上将其丢弃并返回带有dictionary.items()
的未排序集合。< / p>
要按顺序处理密钥,您需要以下内容:
for key in sorted(dictionary.keys()):
print(key)
这将根据需要打印出来:
key1
key2
key3
key5
答案 1 :(得分:2)
sorted()
返回已排序的序列。您需要迭代此序列以获得排序结果。