python中自定义序列的实现

简介: python中自定义序列的实现

一、序列



原有学习过的序列有:字典、元组、列表、字符串等。

序列的各个类型对应使用符号:

  • 字典{key:value}
  • 元组()
  • 列表[ ]
  • 字符串””  ‘’


二、序列的原理



以下开始以字典举例,其它的序列类似。我们在调用序列的时候,其实一些操作对应魔法方法:

  1. len获取长度,对应__len__;
  2. 增加字典的键值对通过字典名称[键]=值,对应__setitem__;
    获取字典的值,使用字典名称[键] ,对应__getitem__;
  3. 删除字典中某个键值对,使用del 字典名称[键],对应__delitem__


三、自定义类的序列



通过序列的各项操作与魔法方法的对应关键,我们可以自定义一个自己的序列。使用类来定义类中的序列,这样可以方便我们操作类中的一些属性和方法。


四、总结强调



1.掌握序列的实现原理

2.掌握类的自定义序列方法

__len__

__setitem__

__getitem__

__delitem__


本节源码:

class MyDict:
    #类的构造方法
    def __init__(self):
        self.length=0
        self.ljydic={}
        print("已经实例化一个类")
    #模拟序列操作,获取字典的长度
    def __len__(self):
        return self.length
    #模拟序列,设置字典
    def __setitem__(self, key, value):
        self.ljydic[key]=value
        self.length+=1
        print("字典增加了一项:",key,"=",value)
    #模拟序列,获取字典
    def __getitem__(self, item):
        return self.ljydic[item]
    #模拟序列,进行删除某个项
    def __delitem__(self, key):
        del self.ljydic[key]
        self.length-=1
#实例化类
md=MyDict()
md["aaa"]="老刘"
print("字典长度:",len(md),md.ljydic)
md["bbb"]="刘金玉"
print("字典长度:",len(md),md.ljydic)
md["ccc"]="编程创造城市"
print("字典长度:",len(md),md.ljydic)
#模拟删除
del md["bbb"]
print("字典长度:",len(md),md.ljydic)
#模拟获取
print(md["ccc"])
相关文章
|
4月前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
95 2
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
3月前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
246 1
|
4月前
|
Python
探索Python中的魔法方法:打造你自己的自定义对象
【8月更文挑战第29天】在Python的世界里,魔法方法如同神秘的咒语,它们赋予了对象超常的能力。本文将带你一探究竟,学习如何通过魔法方法来定制你的对象行为,让你的代码更具魔力。
48 5
|
4月前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
164 0
|
27天前
|
Python
在Python中,自定义函数可以抛出自定义异常
在Python中,自定义函数可以抛出自定义异常
42 5
|
27天前
|
存储 开发者 Python
自定义Python的异常
自定义Python的异常
14 5
|
1月前
|
存储 JSON API
如何自定义Python环境变量?
如何自定义Python环境变量?
42 3
|
3月前
|
机器学习/深度学习 索引 Python
python之序列
python之序列
149 59
|
2月前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
2月前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】