join方法,set集合,深浅拷贝.

时间:2021-03-18 19:49:54
上节课回顾
1.
python里的(int,str)存在一个小数据池主要是为了节约内存.
int: -5~256 str:
is和 == 的区别:is比较的是内存地址,==比较的两边的值.
id(地址).
2.编码
1.ASCII, 英文, 数字, 一些特殊符号 8bit 1byte
2. GBK, 国标码, 汉字. 16bit 2byte 必须兼容ASCII
3. UNICODE, 万国码, 32bit 4byte , 兼容ASCII
4. UTF-8 可变长度的万国码
英文: 8bit 1byte
欧洲: 16bit 2byte
汉字: 24bit 3byte

在网络传输和数据存储的时候. 换gbk, utf-8(90%)
编码用(encode) unicode变成你需要的解码
编码之后的内容是字节(bytes类型)
解码用(decode): 把目标bytes转换成字符串
最后用什么编码,就要用什么解码.
新课:
1.对之前的知识点进行补充
1. str中的join方法 (将列表转换成字符串)
2.列表和字典在循环的时候不能直接删除.
需要把要删除的内容记录在新列表中
然后循环新列表.删除字典或列表.
3. fromkeys()
返回新字典. 对原字典没有影响
后面的value.是多个key共享一个value

字符串转换成列表:split()
把列表换成字符串:join()

join(可迭代对象)

(列表和字典都不能呢在for循环的时候进行删除,字典再循环的时候不允许改变大小)
for循环的时候,发现,剩余了

操作:添加一个新列表
新列表append添加内容
这样才能删除你要的结果

Foley 跟空沾边的都是Foley

2.set集合
特点
集合中的元素必须是可哈西的,不重复.
set续重 把重复的去掉
只保存key.set
(集合本身是可变的数据类型,不可哈西,有增删改查操作)
查询可以迭代对象for操作
&交集,|并集,^反交集
frozenset()冻结的集合. 不可变的. 可哈希的
3.深浅拷贝
1.浅拷贝
lst1 = ["何炅", "杜海涛","周渝民", ["麻花藤", "马芸", "周笔畅"]]
lst2 = lst1.copy() #复制
lst1[3].append("无敌多寂寞")
print(1)结果一样
print(2)结果一样
浅拷贝.只会拷贝第一层,第二层的内容不会拷贝.所以称为浅拷贝.
拷贝第一层内容. [:]或copy()
2.深拷贝
拷贝所有内容. 包括内部的所有.
lst2 = copy.deepcopy"(lst1)
3总结
赋值.赋值操作没有创建新对象.公用同一个对象