Python 修改可变变量(list /dict/set)的常用方式

可变变量的核心:原地修改,不改变内存地址,不用重新赋值覆盖变量名。

一、列表 list 修改方式

1. 通过索引修改单个元素

python

运行

lst = [10, 20, 30]
lst[0] = 99    # 修改第1个元素
lst[-1] = 999  # 修改最后一个元素
print(lst)  # [99, 20, 999]

2. 切片批量修改多个元素

python

运行

lst = [1,2,3,4]
lst[1:3] = [22,33]
print(lst)  # [1, 22, 33, 4]

3. 追加元素 append ()

python

运行

lst = [1,2]
lst.append(3)
# [1,2,3]

4. 插入元素 insert (下标,值)

python

运行

lst.insert(0, 0)

5. 删除元素

python

运行

lst.pop()        # 删除末尾
lst.pop(1)       # 删除指定下标
del lst[0]
lst.remove(2)    # 删除第一个匹配的值
lst.clear()      # 清空列表

6. 扩展列表 extend ()

python

运行

lst = [1,2]
lst.extend([3,4])
# [1,2,3,4]

二、字典 dict 修改方式

1. 键赋值:新增 / 修改 value

python

运行

d = {"name":"小明","age":18}
d["age"] = 20        # 修改已有键
d["gender"] = "男"   # 新增键值对

2. update () 批量更新

python

运行

d.update({"age":21, "height":175})

3. 删除键

python

运行

del d["name"]
d.pop("age")
d.clear()

4. setdefault:有则不改,无则新增

python

运行

d.setdefault("name","小红")

三、集合 set 修改方式

1. 添加元素

python

运行

s = {1,2,3}
s.add(4)
s.update([5,6])

2. 删除元素

python

运行

s.remove(3)     # 元素不存在会报错
s.discard(99)   # 不存在不报错
s.pop()         # 随机删除一个
s.clear()

四、两种修改方式的区别(易错点)

方式 1:原地修改(真正修改可变对象,推荐)

python

运行

lst = [1,2]
lst.append(3)
# id(lst) 不变,所有引用这个列表的变量都会同步变化

方式 2:重新赋值(不是原地修改,只是变量指向新对象)

python

运行

lst = [1,2]
lst = lst + [3]
# 生成了新列表,id 改变,不属于原地修改

五、经典案例:多个变量指向同一个可变对象

python

运行

a = [1,2]
b = a
a.append(3)
print(b)  # [1,2,3]
# b 和 a 指向同一个列表,原地修改会互相影响

需要我整理一份可变类型常用方法速查表吗?

更多推荐