python dict 排序小问题

kithon 2011-08-16 10:58:27

ddict = {115: 'm1.mail.qq.com', 116: 'm2.mail.qq.com', 53: 'm3.mail.qq.com'}
sorted(ddict.items(),key=lambda t:t[0])
print ddict


运行结果:

cmd.exe /c python t.py
{115: 'm1.mail.qq.com', 116: 'm2.mail.qq.com', 53: 'm3.mail.qq.com'}
Hit any key to close this window...

百思不得其解,为啥不给排序呢?求大侠给个解答, thx~
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kithon 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iambic 的回复:]

另外sorted是返回一个新的list,并不改变参数本身。阅读下手册吧。
[/Quote]
刚到这个顿时虎躯一震,菊花一紧 多谢!
iambic 2011-08-16
  • 打赏
  • 举报
回复
另外sorted是返回一个新的list,并不改变参数本身。阅读下手册吧。
iambic 2011-08-16
  • 打赏
  • 举报
回复
hashmap/dict之类的一般都是无序的,你要是接触过数据结构的课程就能明白了。

你可以使用collections.OrderedDict
>>> import collections
>>> ddict = {115: 'm1.mail.qq.com', 116: 'm2.mail.qq.com', 53: 'm3.mail.qq.com'}
>>> collections.OrderedDict(sorted(ddict.items(),key=lambda t:t[0]))
OrderedDict([(53, 'm3.mail.qq.com'), (115, 'm1.mail.qq.com'), (116, 'm2.mail.qq.com')])

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧