如何在Python中修改可变变量的值?
·
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 指向同一个列表,原地修改会互相影响
需要我整理一份可变类型常用方法速查表吗?
更多推荐
所有评论(0)