liwya 发表于 2018-8-11 06:36:45

Python入门篇(三)之列表

names = ["ZhangYang","Guyun",["alex","jack"],"Xiangpeng","Xuliangchen"]  names2 = names.copy()
  print(names)
  print(names2)
  names = "古云"
  names = "ALEX" #更改列表中的alex为ALEX,可以看到names2中也相应更改
  print("names-->",names)
  print("names2-->",names2)
  执行结果:
  ['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']
  ['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']
  names--> ['ZhangYang', '古云', ['ALEX', 'jack'], 'Xiangpeng', 'Xuliangchen']
  names2--> ['ZhangYang', 'Guyun', ['ALEX', 'jack'], 'Xiangpeng', 'Xuliangchen']
  ★★★★注意:这里的的copy只会拷贝第一层,列表中包含列表,其中列表是指向存放列表的内存地址,所以在更改列表中的元素时,拷贝的部分也会相应地更改。
  为了实现深入拷贝,可以导入copy模块:
  import copy
  names2 = copy.deepcopy(names)
  print(names)
  print(names2)
  names = "古云"
  names = "ALEX"
  print("names-->",names)
  print("names2-->",names2)
  执行结果:
  ['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']
  ['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']
  names--> ['ZhangYang', '古云', ['ALEX', 'jack'], 'Xiangpeng', 'Xuliangchen']
  names2--> ['ZhangYang', 'Guyun', ['alex', 'jack'], 'Xiangpeng', 'Xuliangchen']
  可以看到拷贝是完全克隆过来的,但是生产过程中一般不会使用,拷贝多一份数据,等于多占据了一份内存空间。
页: [1]
查看完整版本: Python入门篇(三)之列表