class MyDict(dict):   #有序字典实现

     def __init__(self):
self.li = []
super(MyDict,self).__init__() def __setitem__(self, key,value):
self.li.append(key)
super(MyDict,self).__setitem__(key,value) def __str__(self):
temp_list = []
for key in self.li:
value = self.get(key)
temp_list.append("'%s':%s" %(key,value,))
temp_str = '{' + ','.join(temp_list) + '}'
return temp_str
obj = MyDict()
obj['k1'] = 123
obj['k2'] = 456
print(obj)

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

python有序字典实现代码的更多相关文章

  1. python有序字典OrderedDict()

    转python创建有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections " ...

  2. Python 有序字典(OrderedDict)与 普通字典(dict)

    Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型 1.无序字典(普通字典): my_dict = dict()my_dict["name"] = &q ...

  3. Python 有序字典简介

    Table of Contents 1. 有序字典-OrderedDict简介 1.1. 示例 1.2. 相等性 1.3. 注意 2. 参考资料 有序字典-OrderedDict简介 示例 有序字典和 ...

  4. python有序字典

    最近的django开发中用到了有序字典,所以研究了一下,以下. 示例: 有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的. 普通字典: d1={} d1['a ...

  5. Python学习笔记——基础篇2【第三周】——计数器、有序字典、元组、单(双)向队列、深浅拷贝、函数、装饰器

    目录 1.Python计数器Counter 2.Python有序字典OrderredDict 3.Python默认字典default 4.python可命名元组namedtuple 5.Python双 ...

  6. python创建有序字典及字典按照值的大小进行排序

    有序字典 在Python中,字典类型里面的元素默认是无序的,但是我们也可以通过collections模块创建有序字典 # -*- coding:utf-8 -*- # python有序字典需导入模块c ...

  7. python创建有序字典OrderedDict()

    python 有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections "& ...

  8. 【python】collections模块(有序字典,计数器,双向队列)

    collections模块基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上 ...

  9. python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列

    1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能  Counter 我们从中挑选一些相对常用的方法来举例: 在上面的例子 ...

随机推荐

  1. Spring注入-Map

    在spring框架中为Map注入属性 1map映射的对象创建 package com; /** * Map集合在spring中的使用测试 */ public class User { private ...

  2. linux 设置 jdk环境变量

    1.安装jdk  tar zxvf jdk-8u112-linux-i586.tar.gz 2.设置环境变量:vi /etc/profile 输入i加入内容如下:export JAVA_HOME=/u ...

  3. Python基础知识--列表和集合

    列表:有序性,可以存放任意类型的对象,通过索引访问,可以分片操作 >>> L = ['id', 1000, 'scd', 1000, 'scd'] >>> L [' ...

  4. Android教程:ImageView 设置图片

    Android doc中是这样描述的: public void setImageResource (int resId) 这是其中的一个方法,参数resld是这样: ImageView.setImag ...

  5. activeMQ数据消耗,但在该站的中间,但是没有理由删除数据

    connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); 第一参数改变时TRUE后,消费数据将出现在MQ中间站没有记录删除. ...

  6. 一步一步写算法(之 A*算法)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在前面的博客其中,事实上我们已经讨论过寻路的算法.只是,当时的演示样例图中,可选的路径是唯一的 ...

  7. easyui总结

    1.设置一个区域可拖动的第一种方法直接用html<div id="dd" style="width:100px;height:100px;">< ...

  8. python - 操作RabbitMQ

    python - 操作RabbitMQ     介绍 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.MQ全称为Mess ...

  9. 表达式:使用API创建表达式树(3)

    一.DebugInfoExpression:发出或清除调试信息的序列点. 这允许调试器在调试时突出显示正确的源代码. static void Main(string[] args) { var asm ...

  10. u盘复制提示文件过大

    应该有很多个朋友也遇到过同样的问题,就是我们的u盘的明明可用的空间还有很多,甚至一个空的16g的u盘,但从window等操作系统向u盘拷贝文件的时候,却不能容下诸如iso4g的镜像文件,难道是生产u盘 ...