【发布时间】:2014-03-28 10:21:41
【问题描述】:
我想打印一个排序字典,其中包含很多键值对(~2000)。 每对都包含一个作为键的数字和一个作为值的字符串。 这只是关于打印,我实际上不想对字典进行排序。
如果我使用sorted() 方法,python 会对我的字典进行排序,但方式很尴尬:
{'0':'foo', '1':'bar', '10': 'foofoo', '100': 'foobar', '1000': 'barbar',
'1001': 'barfoo', '1002': 'raboof', ...}
但我想像这样以“常规”方式对其进行排序:
{'0':'foo', '1':'bar', '2': 'foofoo', '3': 'foobar', '4': 'barbar',
'5': 'barfoo', ... , '1001': 'raboof'}
我可以强制该方法按照我想要的方式运行,还是有其他更好的解决方案?
【问题讨论】:
-
为什么不使用列表呢?您的数字似乎是连续的,为什么要使用字典?
-
因为它比列表加载值更快。
-
不适用于索引,它不是。
listobj[10]将比dictobj['10']更快地返回第 11 个值,因为字典必须首先对键进行散列和扰动。 -
哦,好的,谢谢...不知道
-
但是用信息填充列表将比字典花费更长的时间,顺便说一句......
标签: python sorting dictionary printing