pythonl list 的修改元素

3.修改元素

      列表对象month现在已经包含12个月的英文字符串,或许这些字符串显得过长,可以将月份变为缩写形式,这时需要对列表元素进行修改。

      由于列表是可变的,修改列表元素最简单的方法是提取该元素并进行赋值操作,代码如下所示:

month=['January','Feburary','March','April','May','June','July','August','September','October','November','December']
print(month) #查看原始列表
month[0]='Jan' #将第一个元素改为缩写形式
print(month) #查看修改后的列表

      前面方法的处理都是直接作用在列表对象上,而且会创建一些所谓的“副本”进行处理,下面将解释创建“副本”的理由。对于可变类型的数据结构,直接在对象上进行元素的增删改查等修改操作,处理结果将直接影响对象本身,代码如下所示:

change.py:
a=[1,2,3,4] #变量名a指向列表对象[1,2,3,4]
b=a #变量名b也指向列表对象[1,2,3,4]
print(a) #查看修改前的列表a
print(b) #查看修改前的列表b
a.append(5) #列表尾端追加元素5
print(a) #查看修改后的列表
print(b) #通过变量名b查看列表

        change.py展示了修改操作会直接作用在对象上,列表对象有a和b两个变量名,通过变量名a对列表对象进行修改,此时列表对象的内容发生改变,所以无论通过变量名a还是变量名b来查看列表对象,结果都是一样的·。如果不希望修改操作直接作用于列表对象本身,可以使用列表的copy方法创建一个完全一样的“副本”,将修改操作作用在“副本”上,列表本身并不会发生变化。实质上,这个“副本”已经是另一个列表对象,只是内容与原列表对象完全相同而已。除了copy方法外,使用切片操作和list函数也能达到同样效果,代码如下所示:

copy.py:

a = [10,20,30,40,50]
b = a.copy()#使用copy方法创建副本
c = a[:]#使用切片操作创建副本
d = list(a) #使用list函数创建副本
print(id(a),id(b),id(c),id(d)) #查看各变量对象id
b[2] = 'three' #修改副本第三个元素
print(b)#查看修改后的变量对象
print(a)
print(c)
print(d)

猜你喜欢

转载自blog.csdn.net/qq_35480483/article/details/81184639
今日推荐