python 学习 有序字典

自定义创建有序字典类

dict的__getitem__方法 有些不同,想使用自定义__getitem__方法显示查询key的下标;需要研究

#/usr/bin/env python3
# -*- coding:utf-8 -*-
# Author: ZSHAOX

class mydict(dict):
    li = []  #定义列表用于有序的排列key值  

    def __setitem__(self, key, value): #自定义__setitem__方法,扩展父类方法
        self.li.append(key)      #将对象的key 添加至列表中
        super(mydict, self).__setitem__(key, value)   #将key,value写入到字典,调用父类__setitem__方法

    def __str__(self):    #自定义__str__方法
        temp_list = []    #定义临时列表 用于存放拼接的字典字符串
        for key in self.li:
            value = self.get(key)
            if type(value) == int:
                msg = "‘%s‘:%s" % (key, value)
                temp_list.append(msg)
            elif type(value) == str:
                msg = "‘%s‘:‘%s‘" % (key, value)
                temp_list.append(msg)
        temp_str = ‘{‘+",".join(temp_list)+‘}‘    #拼接字典字符串
        return temp_str

dic = mydict()

dic[‘k1‘] = 123
dic[‘k2‘] = 321

print(dic, type(dic))
print(dic)

  

时间: 2024-10-25 19:47:27

python 学习 有序字典的相关文章

python创建有序字典OrderedDict()

python 有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections """ import collections # 通过OrderedDict类创建的字典是有序的 dic = collections.OrderedDict() dic['k1'] = 'v1' dic['k2'] = 'v2' dic['k3'] = 'v3' print dic "

Python学习:字典(dictionary)

dictionary是python内置数据结构中最灵活的.列表list是有序的对象集合,而dictionary是无序的集合.最主要的差别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 可变长,异构,任意嵌套.字典可以在原处修改,但不支持用于字符串和列表中的序列操作.因为字典是无序的集合,所以根据固定顺序进行操作是行不通的. 1.dictionary的构造: D={}        #空字典 D = {'spam':2, 'ham':1, 'eggs':3}    #三项目字典 D =

python学习笔记字典(四)

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 创建字典:  = {::} sh

Python学习:字典(list)

列表是Python最具灵活性的有序集合对象类型.与字符串不同,列表是可变对象.可以通过指定的偏移和分片.列表调用.删除语句等方法来实现. 列表的特点如下: 任意对象的有序集合: 通过偏移读取: 可变长度.异构以及任意嵌套: 对象引用数组. 常见列表操作: L=[]                       #创建空列表 L=[0,1,2,3]                #索引0-3 L=['abc',['def','ghi']]    #嵌套子列表 L=list('spam') L=lis

python学习05——字典

笨办法学python第39节 这节主要讲解的是字典,首先字典和列表的两个区别是: 1. 列表中可以通过数字找到列表中的元素,是数字作为索引的:字典中可以通过任何东西找到想要的元素,即字典可以将一个物件和另外一个东西关联. 2. 列表是有顺序的:字典是无序的.(上一节有提到) 本节的代码如下: 1 class Song(object): 2 3 def _init_(self, lyrics): 4 self.lyrics = lyrics 5 6 def sing_me_a_song(self)

Python学习笔记-字典(上)

字典是python独特的一种映射关系的数据类型,由成对的键值(项)组成. 建立方法: 1.直接输入键值建立 items ={'apple':'$5','pear':'$4','banana':'6'} print items['apple'] $5 注意一定使用{ }, 否则成了列表. 2. 通过dict函数从列表建立 items =[['apple','$5'],['pear','$4'],['banana','6']] print items print items[0:1] ditems 

Python学习笔记-字典(下)

同列表和字符串一样,字典也有方法. clear 清空字典中的所有项. 我们可以把空字典赋给某一字典来清空它当中的项.也可以使用clear方法彻底清空字典. x= {} y=x x['age']='25' x['gender']='male' print x  x.clear() print x  print y  {'gender': 'male', 'age': '25'} {} {} 如果将 x.clear 改为 x={},则结果变为 {'gender': 'male', 'age': '2

python 学习分享-字典篇

python字典(Dictionary) dict是无序的 key必须是唯一切不可变的 a={'key1':'value1','key2':'value2'} 字典的增删改查 a['key3']='value3'#在a这个字典里加入新的元素'key3':'value3' del a['key1']#删除a字典中的'key1':'value1' a.clear() # 清空词典所有条目 del a # 删除词典 a['key2']='value2_new'#将key2的值改为'value2_new

python学习之字典

#coding:utf-8__author__ = 'Administrator'from copy import deepcopy#字典由多个键及其对应的值构建的对组成,键是唯一的,值并不唯一phonebook={'lyq':6589,'ming':9878,'tong':4586}#1.dict函数,可以用来通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典item=[('nn','bb'),('age',89)]d=dict(item)print ddd=dict(name='