我们已经看到了如何使用 append 向列表增加元素。不过除此以外还有其他一些方法。实际上,向列表增加元素共有 3 种方法:append、extend 和 insert。
append 向列表末尾增加一个元素。
extend 向列表末尾增加多个元素。
insert 在列表中的某个位置增加一个元素,不一定非得在列表末尾。你可以告诉它要在哪里增加元素。
增加到列表末尾:append
我们已经见过 append 是如何工作的。它把一个元素增加到列表末尾:
>>> letters.append('n')>>> print letters['a', 'b', 'c', 'd', 'e', 'n']
再来增加一项:
>>> letters.append('g')>>> print letters['a', 'b', 'c', 'd', 'e', 'n', 'g']
注意这些字母并没有按顺序排列。这是因为 append 只是将元素增加到列表末尾。如果希望这些元素按顺序排列,必须对它们排序。稍后就会谈到排序。
扩展列表:extend
extend 在列表末尾增加多个元素:
>>> letters.extend(['p', 'q', 'r'])>>> print letters['a', 'b', 'c', 'd', 'e', 'n', 'g', 'p', 'q', 'r']
注意 extend 方法的圆括号中是一个列表。列表有一个中括号,所以对于 extend,可以同时有圆括号和中括号。
提供给 extend 的列表中的所有内容都会增加到原列表的末尾。
插入一个元素:insert
insert 会在列表中的某个位置增加一个元素。可以指定希望将元素增加到列表的哪个位置:
>>> letters.insert(2, 'z')>>> print letters['a', 'b', 'z', 'c', 'd', 'e', 'n', 'g', 'p', 'q', 'r']
在这里,我们将字母 z 增加到索引为 2 的位置。索引 2 是列表中的第 3 个位置(因为索引从 0 开始)。原先位于第 3 个位置上的字母(也就是 c)会向后推一个位置,移到第 4 个位置上。它后面的每一个元素也都要向后移一个位置。
append 和 extend 的区别
有时 append 和 extend 看起来很类似,不过它们确实有一些区别。下面再回到原来的列表。首先,用 extend 增加 3 个元素:
>>> letters = ['a','b','c','d','e']>>> letters.extend(['f', 'g', 'h'])>>> print letters['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
现在,再用 append 做同样的事情:
>>> letters = ['a', 'b', 'c', 'd', 'e']>>> letters.append(['f', 'g', 'h'])>>> print letters['a', 'b', 'c', 'd', 'e', ['f', 'g', 'h']]
怎么回事?嗯,我们前面说过,append 会向列表增加一个元素。它怎么会增加 3 个元素呢?其实它并没有增加 3 个元素,这里确实只增加了一个元素,只不过这刚好是一个包含 3 项的列表。正是这个原因,所以在这个列表中多了一对中括号。要记住,列表可以包含任何东西,也包括其他列表。这个例子就属于这种情况。
insert 的工作与 append 相同,只不过你可以告诉它在哪里放入新的元素。append 总是把新元素放在列表末尾。