列表的copy函数
功能
- 将
当前列表复制一份相同的列表,新列表与旧列表内容相同,但内存空间不同
用法
list.copy()-> 该函数无参数 , 返回一个一模一样的列表
copy与二次赋值的区别
二次赋值的变量与原始变量享有
相同内存空间copy函数创建的新列表与原始列表不是一个内存空间,不同享数据变更copy属于浅拷贝
| a = [1,2,3] | |
| b = a |
| a = [1,2,3] | |
| b = a.copy() | |
| b.append(4) | |
| b -> [1,2,3,4] | |
| a -> [1,2,3] |
浅拷贝与深拷贝
- 深拷贝内存空间不同,不共享数据;
- 浅拷贝是对最外层的数据创建一个新的间来存储,而对内层的内存地址进行引用;


代码
| # coding:utf-8 | |
| old_list = ['python', 'django', 'flask'] | |
| new_list = old_list | |
| new_list.append('tornado') | |
| print(new_list) | |
| print(old_list) | |
| print(id(new_list), id(old_list)) | |
| old_list.remove('tornado') | |
| print(new_list, old_list) | |
| # old_list.clear() | |
| # print(new_list, old_list) | |
| del new_list | |
| print(old_list) | |
| old_list_copy = ['python', 'django', 'flask'] | |
| new_list_copy = old_list_copy.copy() | |
| print(old_list_copy, new_list_copy) | |
| new_list_copy.append('tornado_copy') | |
| print(old_list_copy, new_list_copy) | |
| print(id(old_list_copy), id(new_list_copy)) | |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZkeqのCoding日志!
评论






