浅拷贝只拷贝第一层,深拷贝拷贝嵌套层次中所有可变类型
深浅拷贝需要先引用模块import copy
例子:
v = [1,12,34,33,[33,44]]
import copy
vv = copy.deepcopy(v)
a = "sss"
b = copy.deepcopy(a)
例子:
v = [1,12,34,33,[33,44]]
import copy
vv = copy.deepcopy(v)
print(id(vv[3]),id(v[3]))
输出结果:1868596336 1868596336
print(id(vv[4]),id(v[4]))
输出结果:1902741508552 1902741297416
a = "ss"
b = copy.copy(a)
例子:
v = [1,12,34,33,[33,44]]
import copy
vv = copy.copy(v)
print(id(vv[3]),id(v[3]))
输出结果:1868596336 1868596336
print(id(vv[4]),id(v[4]))
输出结果2663470471432 2663470471432
!深拷贝浅拷贝一般情况下没有区别,只有在嵌套时才有区别
不可变类型拷贝,不会拷贝,地址一样
特殊情况:如果元组里面都是不可变的,不会改变原来的地址,如果里面有可变,深拷贝会把元组拷贝一遍
实例:
##拷贝可变类型,能够拷贝,在内存开辟一个空间,地址不一样
v = [1,12,34,33,[33,44]]
import copy
vv = copy.deepcopy(v)
print(id(vv),id(v))
输出结果:1664607524872 1664605100808
##不可变类型拷贝,不会拷贝,地址一样
v = (1,12,34,33,[33,44])
import copy
vv = copy.copy(v)
print(id(vv),id(v))
输出结果:2831372300448 2831372300448
v = (1,12,34,33,[33,44])
import copy
vv = copy.deepcopy(v)
print(id(vv[4]),id(v[4]))
输出结果:2754557676624 2754555654304
##特殊情况:如果元组里面都是不可变的,不会改变原来的地址,如果里面有可变,深拷贝会把元组拷贝一遍
r是只读,w是只写(先清空文件),a是只写(只添加不能读)
file_object.seek()指定光标位置
可读可写
r+ (**)常用程度
读:,默认光标位置0,读时默认从最开始读
写:根据光标的位置从当前光标位置开始进行操作,会覆盖当前光标后面的值
w+ (**)常用程度
读:默认光标最后或0,读取时需要调整光标位置
写:先清空
a+ (*)常用程度
读:默认光标位置在最后,读需要调整光标位置
写:写入时不论怎么调整光标位置,永远写到最后
读取文件
例子:
file.object = open (”文件“,mode="r",encoding="编码")
读取文件:
变量 = file.object
print(变量)
关闭文件
file_object.close
## r 不能新建,文件不存在报错
写入文件
例子:
file_object = open (”文件“,mode="w",encoding="编码")
写入文件:
file_object.write("写入内容")
关闭文件
file_object.close
## w 权限一般用于新建,文件不存在新建
例子:
file_object = open (”文件“,mode="a",encoding="编码")
写入文件:
file_object.write("写入内容")
关闭文件
file_object.close
## a 只添加不能读,不存在就新建
.read把文件所有内容读取到内存
.read(2)当前光标向后读取两个字符
.readliens把所有文件到内存,并按照行到列表
读取大文件:用循环循环读取,.strip能够去掉换行(***********)
写文件操作:file_object.write("你好,小黑"/n)
file_object.write("你好,小白)
原文:https://www.cnblogs.com/ffmmxx/p/10656857.html