二次编码 深浅拷贝 is和==
2024-09-01 11:11:10
1.二次编码
- ascii 不支持中文
- gbk 支持中文 2个字节 包含ascii
- Unicode 万国码 python3 内存Unicode
- utf-8 可变的长度 英文 1字节 欧洲2个字节 亚洲3个字节
- unicode 内存
- 硬盘 utf-8 字节 存储 传送
s = "字符串"
s1= s.encode("utf-8") #编码 编码集
print(s1)#b'xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'
s = "zhy"
s1 = s.encode("utf-8")
print(s1)#b'zhy'
- encode 编码
- decode 解码
s = "赵海宇"
s1 = s.encode("utf-8")
print(s1.decode("utf-8")) #赵海宇
- 应用场景:文件操作 网络传输 网络编程
2.基础数据补充
li = [1,2,3,4,5]
for i in li:
li.append(0)
print(li) #li=[1,2,3,4,5,0,0,0,0,0, ]
li = [1,2,3,4,5]
for i in li:
li.append(i)
print(li) #循环
li = [1,2,3,4,5]
for i in li:
li.remove(i)
print(li)#[2,4]
li = [1,2,3,4,5]
for i in li:
li.pop(i)
print(li)#[1,2]
for i in range(len(li)):
li.pop()
print(li) #[]
3.深浅拷贝
- 浅拷贝 copy
- 只拷贝一层 元素是不可变的 就不会变
- 元素是两个可变的 元素就不会变
li = [1,2,3,4,5]
lst = li.copy()
print(li)#[1, 2, 3, 4, 5]
print(lst)#[1, 2, 3, 4, 5]
li = [1,2,3,4,[5,3,9]]
lst = li.copy()
li[-1].append(55)
print(li)
print(lst)
- 深拷贝
import copy
li = [1,2,3,4,[5,3,9]]
lst = copy.deepcopy(li)
print(lst)#[1,2,3,4,[5,3,9]]
print(lst)#[1,2,3,4,[5,3,9]]
import copy
li = [1,2,3,4,[5,3,9]]
lst = copy.deepcopy(li)
li[-1].append(66)
print(li)#[1, 2, 3, 4, [5, 3, 9, 66]]
print(lst)#[1,2,3,4,[5,3,9]]
4.is == 区别
- == 比较两边的值
- is 比较两边的内存地址
- 代码块 节省资源 一个文件就是一个代码块
- 代码块机制:
- 数字:-5 ~ 256
- 字符串:乘法的时候总长度不能超过20
def fun1():
a=1000
return a
def func2():
a=1000
return a
print(fun1() is func2()) #False
- 小数据池: 代码块 > 小数据池
最新文章
- sql中in和exists效率问题 转自百度知道
- http协议(六)报文首部
- Eclipse调试常用技巧(转)
- 使用ssh正向连接、反向连接、做socks代理的方法
- IOS的启动画面的适配问题
- logback详细配置(三)
- hdu3072 强连通+最小树形图
- [转] c# 数据类型占用的字节数
- Delphi 把字符串读到流中的操作。
- 如何track存储过程的编译次数
- Factovisors - PC110704
- Docker集群实验环境布署--swarm【6 配置上层Nginx代理,让任意Docker client访问得到高可用的管理API】
- WOT2016大数据技术峰会——千人技术盛宴
- 虚拟机配置Openstack常见问题汇总
- Jacob工具类使用文件互转服务 word转html html转excel word转pdf excel转pdf ppt转pdf
- Windows安装docker (带安装包)
- 【Linux】Rsync的剖析与使用
- Java基础知识总结--final、finally、finalize的区别
- ALGO-43_蓝桥杯_算法训练_A+B Problem
- spring3.2+mybatis3.2+maven整合