码迷,mamicode.com
首页 > 其他好文 > 详细

第五章自定义序列类

时间:2019-12-21 09:28:33      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:tables   deque   code   产生   并且   ext   字典推导式   bytearray   +=   

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.列表推导式、生成器表达式、字典推导式

第五章自定义序列类

标签:tables   deque   code   产生   并且   ext   字典推导式   bytearray   +=   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!