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"])
相关文章
|
2月前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
50 1
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
25天前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
42 1
|
2月前
|
Python
探索Python中的魔法方法:打造你自己的自定义对象
【8月更文挑战第29天】在Python的世界里,魔法方法如同神秘的咒语,它们赋予了对象超常的能力。本文将带你一探究竟,学习如何通过魔法方法来定制你的对象行为,让你的代码更具魔力。
39 5
|
2月前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
101 0
|
26天前
|
机器学习/深度学习 索引 Python
python之序列
python之序列
139 59
|
7天前
|
jenkins 持续交付 Docker
docker之自定义制作镜像(python程序)
docker之自定义制作镜像(python程序)
|
5天前
|
Linux UED iOS开发
Python中的自定义进度条:从零开始
Python中的自定义进度条:从零开始
|
2月前
|
机器学习/深度学习 Python
时间序列特征提取:从理论到Python代码实践
时间序列是一种特殊的存在。这意味着你对表格数据或图像进行的许多转换/操作/处理技术对于时间序列来说可能根本不起作用。
47 1
时间序列特征提取:从理论到Python代码实践
|
2月前
|
前端开发 Python
使用Python+openpyxl实现导出自定义样式的Excel文件
本文介绍了如何使用Python的openpyxl库导出具有自定义样式的Excel文件,包括设置字体、对齐方式、行列宽高、边框和填充等样式,并提供了完整的示例代码和运行效果截图。
40 1
使用Python+openpyxl实现导出自定义样式的Excel文件
|
2月前
|
机器学习/深度学习 分布式计算 大数据
几行 Python 代码就可以提取数百个时间序列特征
几行 Python 代码就可以提取数百个时间序列特征
下一篇
无影云桌面