流畅的 Python(21):序列构成的数组 2.3.5

阅读数:7 2019 年 11 月 20 日 17:11

流畅的Python(21):序列构成的数组 2.3.5

内容简介
本书致力于帮助 Python 开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护,并且具有地道 Python 风格的代码。本书尤其深入探讨了 Python 语言的高级用法,涵盖数据结构、Python 风格的对象、并行与并发,以及元编程等不同的方面。

(作为不可变列表的元组)

如果要把元组当作列表来用的话,最好先了解一下它们的相似度如何。在表 2-1 中可以清楚地看到,除了跟增减元素相关的方法之外,元组支持列表的其他所有方法。还有一个例外,元组没有 __reversed__ 方法,但是这个方法只是个优化而已,reversed(my_tuple) 这个用法在没有 __reversed__ 的情况下也是合法的。

表 2-1:列表或元组的方法和属性(那些由object类支持的方法没有列出来)

列表 元组
s.__add__(s2) s + s2,拼接
s.__iadd__(s2) s += s2,就地拼接
s.append(e) 在尾部添加一个新元素
s.clear() 删除所有元素
s.__contains__(e) s 是否包含 e
s.copy() 列表的浅复制
s.count(e) es 中出现的次数
s.__delitem__(p) 把位于 p 的元素删除
s.extend(it) 把可迭代对象 it 追加给 s
s.__getitem__(p) s[p],获取位置 p 的元素
s.__getnewargs__() pickle 中支持更加优化的序列化
s.index(e) s 中找到元素 e 第一次出现的位置
s.insert(p, e) 在位置 p 之前插入元素 e
s.__iter__() 获取 s 的迭代器
s.__len__() len(s),元素的数量
s.__mul__(n) s * nns 的重复拼接
s.__imul__(n) s *= n,就地重复拼接
s.__rmul__(n) n * s,反向拼接 *
s.pop([p]) 删除最后或者是(可选的)位于 p 的元素,并返回它的值
s.remove(e) 删除 s 中的第一次出现的 e
s.reverse() 就地把 s 的元素倒序排列
s.__reversed__() 返回 s 的倒序迭代器
s.__setitem__(p, e) s[p] = e,把元素 e 放在位置 p,替代已经在那个位置的元素
s.sort([key], [reverse]) 就地对 s 中的元素进行排序,可选的参数有键(key)和是否倒序(reverse

* 反向运算符在第 13 章中介绍。

每个 Python 程序员都知道序列可以用 s[a:b] 的形式切片,但是关于切片,我还想说说它的一些不太为人所知的方面。

流畅的Python(21):序列构成的数组 2.3.5

图灵地址 https://www.ituring.com.cn/book/1564

评论

发布