zoukankan      html  css  js  c++  java
  • 关于字典存进去数据会变乱的问题。字典排序

    例如一个字典

    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)

    欢迎批评指正,谢谢!

  • 相关阅读:
    1022.游船出租
    1021.统计字符
    1020.最小长方形
    1017.还是畅通工程
    1019.简单计算器
    1015.还是A+B
    1014.排名
    1013.开门人和关门人
    1011.最大连续子序列
    1009.二叉搜索树
  • 原文地址:https://www.cnblogs.com/zhangkaikai/p/6039649.html
Copyright © 2011-2022 走看看