要使用一个列表的副本,要用切片进行列表复制,这样会形成两个独立的列表。
切记不要将列表赋值给一个列表,因为这样并不能得到两个列表。
<强> 1,使用赋值语法创建列表副本的问题强>
下边就将列表赋值,验证是否形成独立的列表:
广?列表(范围(11)) 打印(“广场原始值为:“,结束=") 打印(广场) #使用列表赋值 numbers_squares=广场 打印(“numbers_squares所有元素为:”,结束=") 打印(numbers_squares) #为正方形列表添加数100字 squares.append (100) 打印(“添加数字后的平方值:”,结束=") 打印(广场) #为正方形列表添加数200字 numbers_squares.append (200) 打印(“添加数字后的number_squares值:”,结束=") 打印(numbers_squares) >之前输出为:
广场原始值为:[1,2,3,4,5,6,7,8,9,10) numbers_squares所有元素为:[1,2,3,4,5,6,7,8,9,10) 添加数字后的平方值:[1,2,3,4,5,6,7,8,9,10,100] 添加数字后的number_squares值:[1,2,3,4,5,6,7,8,9,10,100年,200年) >之前可以看的到,number_squares列表值中,也有数100字,说明赋值并没有形成两个独立的列表。赋值只是让Python新变量number_squares关联到包含在广场中的列表,所以这两个列表指向同一个列表。
<强> 2列表副本正确方法:使用切片复制列表副本强>
下边的列子,创建一个1到10的数字列表,用切片进行列表复制形成两个独立的列表
广?列表(范围(11)) 打印(“广场原始值为:“,结束=') 打印(广场) #使用切片复制广场列表 numbers_squares=广场[:] 打印(“numbers_squares所有元素为:”,结束=') 打印(numbers_squares) >之前输出为:
广场原始值为:[1,2,3,4,5,6,7,8,9,10) numbers_squares所有元素为:[1,2,3,4,5,6,7,8,9,10)为了验证确实形成了两个独立的列表,在每个列表上加数字,核实每个列表都记录了加的数字
广?列表(范围(11)) 打印(“广场原始值为:“,结束=") 打印(广场) #使用切片复制广场列表 numbers_squares=广场[:] 打印(“numbers_squares所有元素为:”,结束=") 打印(numbers_squares) #为正方形列表添加数100字 squares.append (100) 打印(“添加数字后的平方值:”,结束=") 打印(广场) #为正方形列表添加数200字 numbers_squares.append (200) 打印(“添加数字后的number_squares值:”,结束=") 打印(numbers_squares) >之前输出为:
广场原始值为:[1,2,3,4,5,6,7,8,9,10) numbers_squares所有元素为:[1,2,3,4,5,6,7,8,9,10) 添加数字后的平方值:[1,2,3,4,5,6,7,8,9,10,100] 添加数字后的number_squares值:[1,2,3,4,5,6,7,8,9,10,200]可以看的到,确实100和200分别加入到相应列表中。
以上这篇解决Python使用列表副本的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
解决Python使用列表副本的问题