python基础之集合,字符编码

六、集合类型

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类型

posted @ 2018-06-01 17:28  luck_L  阅读(209)  评论(0编辑  收藏  举报