免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2824 | 回复: 8

字典的问题 [复制链接]

论坛徽章:
0
发表于 2010-08-19 11:31 |显示全部楼层
>>> werll
{}
>>>
>>>
>>>
>>> werll['a']='A'
>>> werll['b']='B'
>>> werll['c']=['A','B','C']
>>>
>>>
>>> werll
{'a': 'A', 'c': ['A', 'B', 'C'], 'b': 'B'}

以上结果为什么c排第二,b跑最后

论坛徽章:
0
发表于 2010-08-19 11:40 |显示全部楼层
因为字典是无序的。

论坛徽章:
0
发表于 2010-08-19 15:01 |显示全部楼层
dict 是 hash 的

论坛徽章:
0
发表于 2010-08-19 15:57 |显示全部楼层
  1. nkeys = werll.keys()
  2. nkeys.sort()

  3. for n in nkeys:
  4.     print n, werll[n]
复制代码
因为字典是无序的。
chinaunix874 发表于 2010-08-19 11:40

论坛徽章:
0
发表于 2010-08-19 16:51 |显示全部楼层
mrant 发表于 2010-08-19 15:57



你这个是对字典的key排序。
实际字典还是无序的。

论坛徽章:
0
发表于 2010-08-20 10:24 |显示全部楼层
你这个是对字典的key排序。
实际字典还是无序的。
chinaunix874 发表于 2010-08-19 16:51


你是对的, 我只是跟楼主说一下怎么排序

论坛徽章:
0
发表于 2010-08-20 20:03 |显示全部楼层
谢谢各位
呵呵

论坛徽章:
0
发表于 2010-08-20 20:10 |显示全部楼层
werll
{'test1': 'A', 'test3': ['A', 'B', 123], 'test2': 'B', 'test4': {'A': 'B', 'C': 'D'}}

gongwei = werll.keys()
>>> gongwei
['test1', 'test3', 'test2', 'test4']
>>> gongwei.sort()
>>> gongwei
['test1', 'test2', 'test3', 'test4']

for n in gongwei: # 这里是什么意思 由于我初学,所以问问

werll[n]
{'A': 'B', 'C': 'D'} #这里为什么显示的是字典test*的值,那for n in gongwei这里,gongwei的结果是['test1', 'test2', 'test3', 'test4']

论坛徽章:
0
发表于 2010-08-20 20:28 |显示全部楼层
py2.7,py3.x官方有个collections.OrderedDict实现了有序字典
其他版本的,可以看下django.utils.datastructures.SortedDict的实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP