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__()方法。

转载于:https://www.cnblogs.com/chenxiforever/p/5739924.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值