列表的Copy
什么是列表的copy复制?
简单的说就是照抄上一个列表,然后修改置换等操作。
最简单的实例:
list1 = ['张三','李四','王五','赵六'] list2 = list1.copy() print(list1) print(list2)
修改list1的值list2不会发生改变
list1 = ['张三','李四','王五','赵六'] list2 = list1.copy() # 把列表一的张三改成zhansan,发现list2的值不会改变 list1[0] = 'zhangsan' print(list1) print(list2)
输出:
['zhangsan', '李四', '王五', '赵六']
['张三', '李四', '王五', '赵六']
但是这种只是浅Copy,只会复制第一层,第二层或者更多层的数据同样会改变
比如说下面的代码:
# 浅Copy代码: list1 = ['张三','李四',['王大','骚猪'],'王五','赵六'] list2 = list1.copy() # 把列表一的张三改成zhansan,发现list2的值不会改变 list1[0] = 'zhangsan' list1[2][0] = 'saozhu' print(list1) print(list2)
有浅copy那么肯定有深copy
而且,copy可以直接调用内置函数来进行调用
import copy list1 = ['张三','李四',['王大','骚猪'],'王五','赵六'] # 同样的浅copy list2 = copy.copy(list1) # 下面的方法为深copy list3 = copy.deepcopy(list1) # list2[2][0] = 'sakkkkkkk' list3[2][0] = 'wanhuasfquq' print(list1) print(list3)
列表的循环
name = ['张三','李四',['王大','骚猪'],'王五','赵六'] for i in name: print(i)