Skip to content

编辑列表

增加列表元素

方法操作描述
append(object)在列表末尾添加一个元素
extend(object)在列表末尾至少添加一个元素
insert(index, object)在列表的任意位置处添加一个元素
slice 切片在列表任意位置至少添加至少一个元素

append 方法

python
l = [1, 2]

l.append("hello")
print(l)  # [1, 2, 'hello']

注意: 增加列表元素操作前后列表的标识没有改变,即:type(l) 的值一致。

python
l = [1, 2]

l.append("hello")
print(l)  # [1, 2, 'hello']

l2 = ["hello", "world"]
l.append(l2)
print(l)  # [1, 2, 'hello', ['hello', 'world']]

以上操作 l2 将作为一个元素添加到 l 列表中。

extend 方法

extend 方法会在原列表末尾处一次性添加多个元素。

python
l = [1, 2]

l2 = ["hello", "world"]
l.extend(l2)
print(l)  # [1, 2, 'hello', 'world']

也可以通过加法操作对两个列表达到合并的效果。

python
list1 = [1, 2, 3, ]
list2 = ['a', 'b', 'c', ]
print(list1 + list2)  # [1, 2, 3, 'a', 'b', 'c']

insert 方法

insert 方法可以在列表指定索引处添加元素,第一个参数为需要添加的元素所在索引,第二个参数是待添加的元素。

python
l = [1, 2]

l.insert(1, "hello")
print(l)  # [1, "hello", 2]

slice 切片

python
l = [1, 2]
l2 = ["hello", "world"]

l[1:] = l2
print(l)  # [1, 'hello', 'world']

删除列表元素

方法/其他操作描述
remove(item)一次删除一个元素
重复元素仅删除第一个
元素不存在时抛出 ValueError 异常
pop(index)删除一个指定索引位置的元素
指定索引不存在时抛出IndexError异常
不指定索引则删除列表最后一个元素
切片操作一次至少删除一个元素
会产生新的列表
clear()清空列表元素

remote 方法

  • 一次删除一个元素

    python
    l = [1, 2, 3, 1, 2, 3]
    
    l.remove(1)
    print(l)  # [2, 3, 1, 2, 3]

    如果存在重复元素仅删除匹配到的第一个元素

  • 删除一个不存在的元素抛出 ValueError 错误

    python
    l = [1, 2, 3, 1, 2, 3]
    
    l.remove(10)  # ValueError: list.remove(x): x not in list

pop 方法

  • 删除指定索引位置的元素

    python
    l = [1, 2, 3, 1, 2, 3]
    
    print(l.pop(1))  # 2
    print(l)  # [1, 3, 1, 2, 3]

    返回值为指定索引对应的操作。

  • 删除不存在的索引抛出 IndexError 错误

    python
    l = [1, 2, 3, 1, 2, 3]
    
    l.pop(10)  # IndexError: pop index out of range
  • 不指定索引参数,删除列表最后一个元素

    python
    l = [1, 2, 3, 1, 2, 3]
    
    print(l.pop())  # 3
    print(l)  # [1, 2, 3, 1, 2]

切片方式

  1. 不改变原列表
  2. 默认产生的新列表为切片对应的列表结果
  3. 使用空列表赋值给切片后的结果,则会改变原列表
python
l = [1, 2, 3, 1, 2, 3]

print(l)  # 1. [1, 2, 3, 1, 2, 3]
print(l[1:3])  # 2. [2, 3]

l[1:3] = []  # 3.
print(l)  # [1, 1, 2, 3]

清除列表中所有元素

python
l = [1, 2, 3, 1, 2, 3]

l.clear()
print(l)  # []

修改列表元素

为指定索引的元素赋予一个新值

python
l = [1, 2, 3, 4]

l[2] = 30  # 将索引为 2 的元素赋值为 30
print(l)  # [1, 2, 30, 4]

使用索引修改元素一次仅修改一个值

为指定的切片赋予新列表值

python
l = [1, 2, 3, 4]

l[1:] = [20, 30, 40, 50, 60]
print(l)  # [1, 20, 30, 40, 50, 60]

对列表乘法操作

python
l = [1, 2, 3]
print(l * 2)  # [1, 2, 3, 4, 1, 2, 3, 4]

反转列表元素

  • 使用 reverse() 方法
python
l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
l.reverse()
print(l)  # [9, 8, 7, 6, 5, 4, 3, 2, 1]
  • 使用切片方式
python
l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1]

拷贝列表

copy() 方法拷贝列表,对原列表的操作不会影响拷贝后的列表。

python
l = [1, 2, 3]
l2 = l.copy()
del l[1]
print(l2)  # [1, 2, 3]