zoukankan      html  css  js  c++  java
  • python有序字典实现代码

     1 class MyDict(dict):   #有序字典实现
     2     
     3     def __init__(self):
     4         self.li = []
     5         super(MyDict,self).__init__()
     6         
     7     def __setitem__(self, key,value):
     8         self.li.append(key)
     9         super(MyDict,self).__setitem__(key,value)
    10     
    11     def __str__(self):
    12         temp_list = []
    13         for key in self.li:
    14             value = self.get(key)
    15             temp_list.append("'%s':%s" %(key,value,))
    16         temp_str = '{' + ','.join(temp_list) + '}'
    17         return temp_str
    18 obj = MyDict()
    19 obj['k1'] = 123
    20 obj['k2'] = 456
    21 print(obj)

          程序整体思路是将字典与列表结合,利用列表的有序性,保存字典的KEY值,在print()输出字典的时候,调用__str__(self)方法,因此在MyDict类中操作__str__()方法,将之前保存在列表中的字典key取出,进行格式化输出,将最终结果作为返回值,实现最终结果。从这个例子中可以看出,搞清楚对象在不同操作中调用的各种内置特殊方法很重要。比如在生成对象的时候自动调用__init__()方法,在给字典对象赋值的时候调用__setitem__(self,key,value),在输出对象的时候调用__str__()方法。

  • 相关阅读:
    AxMIMS系统开发环境搭建
    基于霍夫变换的点云分割方法
    微惯性导航系统
    “导航技术”学习笔记
    Kalman滤波学习
    Cell complex单元复形
    矩阵与欧拉角的转换
    CGAL4.10 / CGAL4.13编译
    [OpenCV]代码整理
    KinectFusion测试
  • 原文地址:https://www.cnblogs.com/chenxiforever/p/5739924.html
Copyright © 2011-2022 走看看