2024-04-24 23:23:50 发布
网友
我有一个关于python词典顺序的问题。我使用的是python2.7
array ={"dad":"nse","cat":"error","bob":"das","nurse":"hello"} for key in array: print key
为什么结果显示
dad bob nurse cat
不是
dad cat bob nurse
在标准Python实现CPython中,字典没有保证的顺序per the docs。你知道吗
是的,我同意,dictionary是一个独立的数据结构,这意味着它总是有自己的生命:),但请看这个示例:
from collections import OrderedDict days = {"Monday": 1, "Tuesday": 2, "Wednesday": 3, "Thursday": 4, "Friday": 5} print days sorted_days = OrderedDict(sorted(days.items(), key=lambda t: t[1])) print sorted_days print list(days)[0] print list(sorted_days)[0]
带输出:
{'Friday': 5, 'Tuesday': 2, 'Thursday': 4, 'Wednesday': 3, 'Monday': 1} OrderedDict([('Monday', 1), ('Tuesday', 2), ('Wednesday', 3), ('Thursday', 4), ('Friday', 5)]) Friday Monday
在lambda表达式中t[1]表示:根据什么,字典将被排序。所以我想这也许能解决问题。你知道吗
t[1]
但是。。找不到一个严格的答案,为什么这本词典在印刷时有这样的顺序。我想这是一个记忆的问题,这本词典是怎么安排的。你知道吗
根据Python documentation,字典中的元素没有顺序。Python可以按照它选择的任何顺序将条目返回给您。如果你想要一本有顺序的词典,你可以使用OrderedDict。但是,由于它必须保持顺序,因此此集合的性能比普通Dict差
在标准Python实现CPython中,字典没有保证的顺序per the docs。你知道吗
是的,我同意,dictionary是一个独立的数据结构,这意味着它总是有自己的生命:),但请看这个示例:
带输出:
在lambda表达式中
t[1]
表示:根据什么,字典将被排序。所以我想这也许能解决问题。你知道吗但是。。找不到一个严格的答案,为什么这本词典在印刷时有这样的顺序。我想这是一个记忆的问题,这本词典是怎么安排的。你知道吗
根据Python documentation,字典中的元素没有顺序。Python可以按照它选择的任何顺序将条目返回给您。如果你想要一本有顺序的词典,你可以使用OrderedDict。但是,由于它必须保持顺序,因此此集合的性能比普通Dict差
相关问题 更多 >
编程相关推荐