第五章自定义序列类

1.序列类型的分类

  • 容器序列(元素类型可以不同):list、tuple、deque
  • 扁平序列(元素类型必须相同):str、bytes、bytearray、array.array
  • 可变序列(序列内容可以修改):list、deque、bytearray、array
  • 不可变(序列内容不可以修改):str、tuple、bytes

2.序列的abc继承关系

  • Sequence就是不可变序列的方法集合的抽象基类
  • MutableSequence是集合了可变序列的方法和协议的抽象基类。

3.序列的+、+=和extend的区别

  • +:加号两边都是相同的类型,并且返回一个新的对象
  • +=:右侧只要是一个可迭代类型即可,不会返回一个新对象
    • +=内部调用魔法函数__iadd__,__iadd__内部调用extend函数遍历添加的对象放入左侧对象中

补充:extend和append函数区别

  • extend:遍历元素一个一个放入其中
  • append:直接放入其中变成嵌套
 1 a = [1, 2]
 2 c = a + [3, 4]  # +:只能相同类型,产生新对象
 3 print(c)        # [1, 2, 3, 4]
 4
 5 a += (3, 4)  # +=:可以不同类型
 6 print(a)     # [1, 2, 3, 4]
 7
 8 b = [10, 11]
 9 b.extend((13, 14))
10 print(b)    # [10, 11, 13, 14]
11
12 b.append((1, 2))
13 print(b)    # [10, 11, 13, 14, (1, 2)]

4.实现可切片的对象

5.bisect管理可排序序列

6.什么时候我们不该用列表

7.列表推导式、生成器表达式、字典推导式

原文地址:https://www.cnblogs.com/zhihaospace/p/12075620.html

时间: 2024-11-04 01:50:32

第五章自定义序列类的相关文章

第五章 自定义字段、页面布局

在Salesforce Classic页面比较清晰,本章在Salesforce Classic模式进行操作. 一.自定义字段.自定义页面. 点击设置—自定义—潜在客户—字段,此页面可以查看潜在客户的标准字段,标准字段无法删除,如果不需要某些字段,可以不给这些字段赋值.如果潜在客户无法满足要求,可以新建自定义字段. 点击设置—自定义—潜在客户—页面布局,对于页面上潜在客户信息模块没有显示的字段,可以直接从页面的上方文本框拖到潜在客户信息模块,对于不是必要的信息可以点击减号删除. 页面布局完成之后,

自定义序列类

序列是Python中非常重要的协议!是可迭代的! 序列的分类: 序列的协议是放在 from collections import abc的__all__里面的“Sequence”和“MutableSequence” 里面collection方法继承了 Sized, Iterable, Container 如果为MutableSequence的话,就声明了很多可以使用的方法 例如:  insert,append,clear,reverse,extend,pop,remove,__iadd__ 下面

ArcGIS API for JavaScript 4.2学习笔记[16] 弹窗自定义功能按钮及为要素自定义按钮(第五章完结)

这节对Popups这一章的最后两个例子进行介绍和解析. 第一个[Popup Actions]介绍了弹窗中如何自定义工具按钮(名为actions),以PopupTemplate+FeatureLayer的形式测量要素的长度为例子进行介绍. 第二个[Custom popup actions per feature]则是上一个的升级,如果说上一个例子的功能是写死的,那么这个例子就把这个功能写活了.什么意思呢?上个例子的测距仅仅能测距,没有什么别的特别的.而这个例子以啤酒店的分布(点要素图层)为例,在自

第十五章 文件属性类的实现

                  第十五章    文件属性类的实现        根用户的权限也不能是无限大.必须考虑到保护用户的隐私!用户的文件内容.程序代码可设置为根用户也不能观看,只能是文件拥有者可以查看.修改.但根用户可以删除一切非根用户的文件.也可以查看用户的目录.所以,i_mode字符更改如下:      BU16 i_mode; // 描述文件的访问权限:文件的读.写.执行权限  // i_mode.15-13  ftype; 文件类型: 0-符号软连接文件, // 1-硬连接文

c++第五章-(类与对象、构造器和析构器)

1.构造器与结构体的区别:构造器多支持方法.其作用有申请内存,初始化变量. 在c++中构造器没有返回值:语法Class Name(); 2.析构器的作用:释放内存. 在c++中析构器没有返回值:语法~ClassName(); class Animal { public: std::string mouth; std::string name; void eat(); void sleep(); void drool(); Animal(std::string theName); }; class

初识Haskell 五:自定义数据类型和类型类

对Discrete Mathematics Using a Computer的第一章Introduction to Haskell进行总结.环境Windows 自定义数据类型 data type definitions 形式如: data Colour = Red | Orange | Yellow | Green | Blue | Violet Colour type包含了Red Orange Yellow Green Blue Violet这些值,这些值是constructor,其开头字母要

第五十八课、自定义模型类(上)------------------狄泰软件学院

 一.自定义模型类 1.QStandardItemModel是一个通用的模型类 (1).能够以任意的方式组织数据(线程.非线性) (2).数据组织的基本单位为数据项(QStandardItem) (3).每一个数据项能够存储多个具体数据(附加数据角色) (4).每一个数据项能够对数据状态进行控制(可编辑.可选...) 2.Qt中的通用模型类QStandardItemModel (1).QStandardItemModel继承自抽象的模型类QAbstractItemModel (2).QStand

python第五章函数

第五章 函数 5.1三元运算/三目运算 v = 前面 if 条件语句 else 后面 #如果条件成立,"前面"赋值给v,否则后面赋值给v. v = a if a>b else b # 取a和b中值较大的赋值给v # 让用户输入值,如果值是整数,则转换成整数,否则赋值为None data = input('请输入值:') value = int(data) if data.isdecimal() else None 5.2 函数 5.2.1.函数介绍 截止目前为止,都是面向过程式编

JavaScript高级程序设计(第3版)第五章读书笔记

第五章 引用类型 创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数,例如: var person = new Object( ); person.name = “Nicholas”; person.age=29; 第二种是使用对象字面量表示法.如: var person = { name : “Nicholas”, age : 29 }; 在最后一个属性后面添加逗号,会在IE7及更早版本和Opera中导致错误. 两种访问对象属性的方法,一是方括号语法,例如per