解决Python使用列表副本的问题

  

要使用一个列表的副本,要用切片进行列表复制,这样会形成两个独立的列表。

  

切记不要将列表赋值给一个列表,因为这样并不能得到两个列表。

  

<强> 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使用列表副本的问题