基本的序列和映射协议

1.len(self):这个方法应返回集合包含的项数,对序列来说为元素个数,对映射来说
为键值对数。如果__ len __ 返回零(且没有实现覆盖这种行为的__nonzero__),对象在布
尔上下文中将被视为假(就像空的列表、元组、字符串和字典一样)。

2 . getitem(self, key):这个方法应返回与指定键相关联的值。对序列来说,键应该是
0~n -1的整数(也可以是负数,这将在后面说明),其中n为序列的长度。对映射来说,
键可以是任何类型。

3.setitem(self, key, value):这个方法应以与键相关联的方式存储值,以便以后能够
使用__getitem__来获取。当然,仅当对象可变时才需要实现这个方法。

4 . delitem(self, key):这个方法在对对象的组成部分使用__del__语句时被调用,应
删除与key相关联的值。同样,仅当对象可变(且允许其项被删除)时,才需要实现这个

方法。
注意:1.对于序列,如果键值为负整数,应从末尾往前数。2.如果键值的类型不匹配,可能会引发异常。3.对于序列,如果索引的类型是正确的,但是不在允许的范围内,也会引发异常。

关于学习Python的一点学习总结(36->基本序列和映射协议)相关推荐

  1. 关于学习Python的一点学习总结(2->列表)

    4.列表和元组的主要不同在于,列表是可以修改的,而元组不可以. Python支持一种数据结构的基本概念,名为容器(container).容器基本上就是可包含其 他对象的对象.两种主要的容器是序列(如列 ...

  2. 关于学习Python的一点学习总结(57->正则表达式及re模块中的一些函数)

    关于这个正则表达式,我本人也是有点不完全懂,还在继续学习中. 97.re 1.正则表达式: 1.通配符:正则表达式可与多个字符串匹配,可使用特殊字符来创建这种正则表达式 例如:正则表达式'.ython ...

  3. 关于学习Python的一点学习总结(54->集合->堆->双端队列)

    集合,堆,双端队列 再谈集合set:集合是由内置类set实现的 >>> set(range(10)){0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 可使用序列(或其他可 ...

  4. 关于学习Python的一点学习总结(58->匹配对象和编组)

    匹配对象和编组 1.模块re中,查找与模式匹配的子串的函数都在找到时返回MatchObject对象.这种对象包 含与模式匹配的子串的信息,还包含模式的哪部分与子串的哪部分匹配的信息.这些子串部分称 为 ...

  5. 关于学习Python的一点学习总结(52->模块就是程序)

    91.模块就是程序 # hello.py print("Hello, world!") 将其保存在文件hello.py中,这个文件的名称(不包括扩展名.py)将成为模块的名称.这个 ...

  6. 关于学习Python的一点学习总结(47->静态方法和类方法)

    86.静态方法和类方法:静态方法和类方法是这样创建的:将它们分别包装在staticmethod和classmethod类的对象中.静态方法的定义中没有参数self,可直接通过类来调用.类方法的定义中包 ...

  7. 关于学习Python的一点学习总结(41->相关的BIF操作)

    81.一些相关的BIF 1.>>> class BIF:def __init__(self,t):self.t=thasattr(object,name):判断name是否在obje ...

  8. 关于学习Python的一点学习总结(38)

    78.文件: 1.文件的类型:包括ASCII,MIME,.txt等格式. 2.文件的格式类型:(1).MPEG视频:mp4;(2).图片格式:.jpg:(3)powerpoint文档:.ppt; (4 ...

  9. 关于学习Python的一点学习总结(35->关联超类)

    76.调用为关联的超类(继承的类)构造函数 先举个例子: class Bird: def __init__(self): self.hungry = True def eat(self): if se ...

  10. 关于学习Python的一点学习总结(30->递归实例)

    68.递归 先来两个例子: 1.阶乘 def Fact(num):result=numfor i in range(1,num):result*=ireturn result>>> ...

最新文章

  1. mysql导入600万数据_mysql如何导出600万条记录的数据表?
  2. Sql Server中判断表或者数据库是否存在
  3. linux中不同版本的gcc切换,Ubuntu 14.04中升级gcc到版本4.9.2并切换使用它们
  4. 无序数组求第k大的数 python_【python刷题】寻找数组中第K大/小的数
  5. 正则表达式---重复
  6. 饥荒正版怎么创建专用服务器,饥荒:联机版专用服务器创建设置方法汇总
  7. 排序算法之 Slow Sort
  8. 服务器安全设置篇(珍藏补充版中)
  9. 单片机IC卡读取开题报告_基于单片机的IC卡读写器设计(含开题报告)
  10. 哈夫曼编码c语言例题,关于哈夫曼编码试题的计算
  11. idea安装教程(不是jdr包哦)
  12. pingpong php,php – 使用pingpong包在laravel 5.1中创建子模块文件夹
  13. Java游戏吉他英雄_《吉他英雄》全系列十作美版下载
  14. vue3组件之间通信(一)——父传子属性和方法
  15. MATLAB | 经典力学框架下的三体运动数值模拟软件
  16. 【杂谈】什么文章可以给有三AI投稿?你能得到什么
  17. java实战——个人日常事务管理系统
  18. 毕设过程记录(web管理系统)
  19. 详解eclipse如何配置tomcat
  20. Windows操作系统及其应用

热门文章

  1. Django博客系统注册(图形验证码接口设计和定义)
  2. 使用一个特别设计的损失来处理类别不均衡的数据集
  3. 使用计算机视觉在钢铁平面上检测焊接缺陷
  4. 基于OpenCV实战:绘制图像轮廓(附代码)
  5. 链表问题8——将单向链表按某值划分成左边小、中间相等、右边大的形式(初阶)
  6. Spark SQL与外部数据源的操作(Spark SQL ——> CSV/JSON/Parquet/hive/mysql)
  7. docker-compose编排最佳实战(多服务)
  8. VPC DHCP类型的ECS修改DNS
  9. zookeeper安装和使用 windows环境(转)
  10. SQL语句性能优化--LECCO SQL Expert