列表实战——就地改变列表——列表方法调用 | 第二部分 类型与操作 —— 第 8 章: 列表和字典 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-380玩彩网官网入口
和字符串一样,python的列表对象还支持特定类型的方法调用,许多方法都是就地修改被作用列表:
>>> l = ['eat', 'more', 'spam!']
>>> l.append('please') # append method call: add item at end
>>> l
['eat', 'more', 'spam!', 'please']
>>> l.sort() # sort list items ('s' < 'e')
>>> l
['spam!', 'eat', 'more', 'please']
方法在第7章被引入。简言之,它们是联系和作用于特定对象的函数(其实是引用函数的对象属性)。方法提供了特定类型的工具;比如,这里出现的列表方法通常只对列表可用。
可能最常使用的列表方法是append
,它简单地将单个项(对象引用)添加到列表末尾。不像连接,append
期待传入一个单对象,而非一个列表。l.append(x)
的效果类似于l [x]
,但前者就地修改l,而后者创建一个新列表[20]。这里的sort
方法将列表的项进行排序,但它值得享有自己单独的一节。
note20
不像
连接,append
不必产生新对象,所以它通常比
更快。还可以使用前一节中聪明的切片赋值来模拟append
:l[len(l):] = [x]
就像 l.append(x)
,l[:0]=[x]
就像在列表前追加。这两个操作都删除空切片并插入 x,快速地就地修改l,像append
一样。然而,两个都有争议地比列表方法更复杂。比如,l.insert(0,x)
也能在列表前追加一项,而且似乎明显更易记;l.insert(len(l), x)
也在末尾插入一个对象,但除非你喜欢打字,最好还是使用 l.append(x)
!