首页 » 与孩子一起学编程 » 与孩子一起学编程全文在线阅读

《与孩子一起学编程》12.9 向列表增加元素的其他方法

关灯直达底部

我们已经看到了如何使用 append 向列表增加元素。不过除此以外还有其他一些方法。实际上,向列表增加元素共有 3 种方法:appendextendinsert

 
  • 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 个位置上。它后面的每一个元素也都要向后移一个位置。

appendextend 的区别

有时 appendextend 看起来很类似,不过它们确实有一些区别。下面再回到原来的列表。首先,用 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 总是把新元素放在列表末尾。