关于字典存进去数据会变乱的问题。字典排序

例如一个字典

1 dict = {}

当需要往dict中添加元素:

 

dict[1] = “张三”

dict[2] = "李四"

dict[3] = "王五"

添加到字典中后,在字典中的顺序是不定的。当我再次从字典中取出时希望按照原来存入的顺序,我使用的是下面这种方式。

新建一个list

list = []

list.append({1:张三})

list.append({2:李四})

list.append({3:王五})

for i in range(len(list)):

  list[i].key

  list[i].val

这样因为list是有序的,相当于每一个元素都是只有一个元素的字典。

再次读取的时候遍历列表从而获得字典的key和value。得到的顺序可以和原先存入的顺序相同。

 

不知道这么做会不会影响性能。。。初学python,这种方法可以解决字典存入时的顺序问题。所以就用了,

 

通过百度,发现可以使用collentions.OrderdDict()  

OrderdDict为有序字典,OrderdDict是dict的子类,它可以记住字典在添加时的顺序。(Python 2.7+版本)可以使用

z = collections.OrderedDict()
z[ 'banji'] = 'sanban',
z[ 'xuexiao'] = 'hongxing',
z[ 'nianji'] = 'wunianji'

 

遍历字典方法:

方法 一:

for k in z.keys():

  print z[k]

方法二:

for (d,x) in z.items():
     print "key:"+d+",value:"+str(x)

 

欢迎批评指正,谢谢!

posted @ 2016-11-07 17:12  张开开  阅读(948)  评论(0编辑  收藏  举报