Python列表修改元素¶
Python提供了两种修改列表元素的方法, 可以每次修改单个元素, 也可以每次修改一组元素.
修改单个元素¶
修改单个元素非常简单, 通过索引获得列表元素后, 直接对其赋值即可.
Example:
nums = [1, 2, 3, 4, 5]
# 使用整数索引
nums[1] = 20
# 使用负数索引
nums[-1] = 50
修改一组元素¶
Python支持通过切片语法给一组元素赋值. 在进行这种操作时, 如果不指定步长(step参数), 则就不要求新赋值的元素个数与原来的元素个数相同, 这意味, 该操作既可以为列表添加元素, 也可以为列表删除元素.
Example:
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# 修改第1~4元素的值(不包括第4个元素)
nums[1:4] = [10, 20, 30]
# 新赋值的元素个数比原来要多
nums[1:4] = [10, 20, 30, 40, 50]
# 新赋值的元素个数比原来要少
nums[1:4] = [10]
# 将空序列赋给切片, 相当于删除操作
nums[1:4] = []
如果对空切片(L[n:n])赋值, 就相当于插入一组新元素.
Example:
nums = [0, 1, 2, 3, 4, 5]
# 在第4个位置插入新元素
nums[4:4] = ['a', 'b', 'c']
使用切片语法赋值时, Python不支持单个值, 例如下面的写法是错误的:
nums[4:4] = 100
但是如果使用字符串赋值, Python会自动将字符串转换成序列, 其中的每个字符都是一个元素, 例如:
s = list('Hello')
s[2:4] = 'world'
使用切片语法时也可以指定步长(step参数), 但这个时候就要求赋值的新元素的个数和原有元素的个数相同, 例如:
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# 步长为2, 为第1, 3, 5个元素赋值
nums[1:6:2] = [10, 20, 30]