'''
列表的copy函数
1、copy函数的功能
将当前的列表复制一份相同的列表,新列表与旧列表内容相同,但内存空间不同
2、copy函数的用法
list.copy() -> 该函数无参数,返回一个一模一样的列表
示例:
old_list = ['a','b','c']
new_list = old_list.copy()
print(new_list)
3、copy函数与2次赋值的区别
a =[1,2,3]
b = a
二次赋值的变量与原始变量享有相同的内存空间
copy函数创建的新列表与原始列表不是一个内存空间,不享有数据变更
copy函数在功能上属于浅拷贝
浅拷贝的概念:通俗的说,我们有一个列表a,列表里面的元素还是列表,当我们拷贝初新列表b后,无论是a还是
b的内部的列表中的数据发生了变化,相互之间都会受到影响,叫做浅拷贝。
浅拷贝:只会对第一层的数据,进行拷贝,要进行更深层次,就不行
'''
print('浅拷贝:')
a = [[1,2,3],[5,6,7]]
print('a:',a)
b = a.copy()
print('b:',b)
b[0].append(10)
print('b:',b)
print('a:',a)
'''
深拷贝含义:不仅对第一层数据,进行了copy,对深层的数据也进行copy,
原始变量和新变量完完全全不共享数据,叫做深拷贝
'''
import copy
print('深拷贝:')
a = [[1,2,3],[4,5,6]]
b = copy.deepcopy(a)
print('*'*30)
print('b',b)
b[0].append(10)
print('b:',b)
print('a:',a)
print('*'*40)
old_list = ['python','diango','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(old_list,new_list)
del new_list
print(old_list)
'''
本题考查的是对深拷贝与浅拷贝的理解,深拷贝:与原始变量内存空间不相同,不共享数据。浅拷贝:浅拷贝是对最外层的数据创建一个新的内存空间来存储,而对内层的数据内存地址进行引用。所以C选项正确。
深拷贝内存空间不同,不共享数据;浅拷贝是对最外层的数据创建一个新的内存空间来存储,而对内层的内存地址进行引用
'''
print('*'*50)
old_list_copy = ['python','diango','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))
text = [4,9]
content = text.copy()
text.append(13)
content.append([5,10])
print(content)
python-列表copy函数
最新推荐文章于 2022-11-27 17:21:56 发布