增删改查是处理数据最常见的方法,前两种说过了,这里就要说说python提供的两种修改列表元素的方法,一种是修改单个元素,还有一种的修改一组数据的方法。
一、修改单个元素
修改单个元素从原理上讲就是重新给指定位置的元素赋值。下面来看看代码演示。
name1 = ['python', 'java', 'php', 'MySql', 'C++', 'C', 'php', 'C#']
name1[2] = 'python自学网'
print(name1)
返回结果:['python', 'java', 'python自学网', 'MySql', 'C++', 'C', 'php', 'C#']
二、修改一组元素
这里使用的就是切片这种手法来给list列表做整段元素修改的,在进行这种操作时,如果不指定步长(step 参数),Python 就不要求新赋值的元素个数与原来的元素个数相同;这意味,该操作既可以为列表添加元素,也可以为列表删除元素。
name1 = ['python', 'java', 'php', 'MySql', 'C++', 'C', 'php', 'C#']
name1[2:4] = ['python自学网', 'www.wakey.com.cn']
print(name1)
返回结果:['python', 'java', 'python自学网', 'www.wakey.com.cn', 'C++', 'C', 'php', 'C#']
这里要注意的是切片区间包含的元素个数和指定列表中元素的个数要相同。
还有一种切片方法是指定步长切片,同样可以修改多个列表元素的值。看看下面的代码演示。
name1 = ['python', 'java', 'php', 'MySql', 'C++', 'C', 'php', 'C#']
name1[1:5:2] = ['python自学网', 'www.wakey.com.cn']
print(name1)
返回结果:['python', 'python自学网', 'php', 'www.wakey.com.cn', 'C++', 'C', 'php', 'C#']
上面这段代码的意思是,从第二个元素到第六个元素,每隔2个修改成指定的列表中元素。从第二个到第六个包含4个元素,每隔2个修改一下正好能修改两个,如果包含6个元素,这是新的列表中元素不够就会报错。看看下面的演示;
name1 = ['python', 'java', 'php', 'MySql', 'C++', 'C', 'php', 'C#']
name1[1:7:2] = ['python自学网', 'www.wakey.com.cn']
print(name1)
返回结果:
Traceback (most recent call last): File "C:/Users/Administrator/Desktop/python知识总结/python基础/9-4.修改列表元素.py", line 12, in name1[1:7:2] = ['python自学网', 'www.wakey.com.cn'] ValueError: attempt to assign sequence of size 2 to extended slice of size 3