2.11.2 插入元素

通过append方法,我们可以在list的队尾插入一个新的元素。


>>> work_days
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

>>> work_days.append('Sat')
>>> work_days
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

能不能一次插入多个元素呢?我们试试看。


>>> work_days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

>>> work_days.append('Sat', 'Sun')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)

从结果看是不行的,append方法只接受一个参数。

如果我们把想插入的元素放在一个list里面做append的操作呢?


>>> work_days.append(['Sat', 'Sun'])
>>> work_days
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', ['Sat', 'Sun']]

语法上没有问题,只是结果是list作为一个子元素被整体插入,也不是我们所期望的。

如果想一次插入多个元素,我们不应该用append方法,而是应该用extend方法。


>>> numbers = [1, 2]
>>> numbers
[1, 2]

>>> numbers.append(3)
>>> numbers
[1, 2, 3]

>>> numbers.extend([4, 5, 6])
>>> numbers
[1, 2, 3, 4, 5, 6]

如果想在队首或者队列的其他位置插入元素,我们需要用到insert方法,用这个方法的第一个参数指定待插入的位置。


>>> numbers = [10, 20, 30]
>>> numbers
[10, 20, 30]

>>> numbers.insert(1, 15)
>>> numbers
[10, 15, 20, 30]