python基础之集合,字符编码

时间:2022-08-26 14:19:38

六、集合类型

1.用途:关系运算

2.定义方式:s = {1,2,’a’}

{}内用,分隔开多个元素,每个元素都必须是不可变(即可hash)类型

强调:2.1集合内的元素时无序的

2.2集合内的元素不能重复

2.3集合内元素必须不可变

集合的目的是将值放在一起,无需纠结单个值

单纯用集合去重,需要注意的问题:

1.去重的目标所包含的值必须都要为不可变类型

2.去重的结果会打乱原来的顺序

3.常用的内置方法和操作

①长度 len     ②in/not in

③a = {‘a’, 2, ’g’}              b = {‘a’, 5, 8}

并集 |  (a|b)           交集 & (a&b)           差集 -     (a-b)

对称差集 ^  (a^b)        等于==             父集 >   >=        子集  <   <=

④a.isdisjoint()                 没有交集就返回True

⑤a.add()  添加单个值    ⑥a.update({2,5,6})                添加一个集合

⑦a.pop()  删除随机    ⑧a.remove(5)          删除指定值

⑨a.discard(9)  删指定值,不存在也不会报错

总结:存多个值,无序,可变

字符编码:

什么是字符编码?

将人类的字符编码成计算机能识别的数字,这种转换必须遵循一套固定的标准,这种对应关系称为字符编码表

ASCII码表:用1Bytes表示一个英文字符

GBK:用2Bytes表示一个中文字符,1Bytes去表示英文字符

unicode:2Bytes表示英文与中文等字符,内存中使用的是unicode,把全世界的字符都建立了对应关系

utf-8:用1Bytes表示英文,用3Bytes表示中文

unicode与其它各国编码都有映射关系,而utf-8没有,所以内存中都用的unicode

必须记住的概念:

①内存中固定使用unicode编码,我们只能改变存到硬盘时的编码

②要想保证不乱码,应保证什么编码存,就用什么编码读

③python3解释器默认编码为utf-8

Python2解释器默认编码为ASCII

unicode----->encode-------->utf-8

utf-8-------->decode---------->unicode

总结:1.在python2中,字符串str类型都是按文件头编码的

2.在python2中,unicode的字符串需在字符串前加u

3.在python3中的字符串都是str类型,都是用unicode编码的

4.在python3中,字符串可以编码成其他字符串类型,结果为bytes类型