python集合、字符编码

集合

{ }可以包含多个元素,用逗号分割

用途:用于关系运算

注意3点:

1.每个元素是不可变类型

2.没有重复的元素

3.无序

set(names)去重功能应用

set(names)的功能是将列表转换成集合,并去除重复值
但是因为集合里面的元素时不可变的,所以set在去重时对象所包含的值不能有不可变类型,例如不能有 [ ]{ }
names=['zhangsan','lisi','wangwu','zhangsan','zhaoliu']
s=set(names)
print(s)
E:\PycharmProjects\untitled\venv\Scripts\python.exe E:/PycharmProjects/untitled/平时问题积累.py
{'zhangsan', 'lisi', 'zhaoliu', 'wangwu'}




字符编码:

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

A---->0000 0000      bit:是二进制位   byte:字节
B---->0000 0001
c---->0000 0002
d---->0000 0003

1个英文字母=8bit=1bytes

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

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

unicode:内存中使用的是unicode编码,unicode把全世界的字符都建立好对应关系
          用2Bytes去表示一个字符

utf-8 #unicode tranform format-8
utf-8 用1Bytes表示英文,用3Bytes表示中文

字符编码需要记住的概念:

01 内存中固定使用unicode编码,我们唯一可以改变的存储到硬盘时使用的编码

02 要想保证存取文件不乱乱码,应该保证文档当初是以什么编码格式存的,就应该以什么编码格式去读取

在python2中有两种字符串编码格式
        1、unicode:
            x=u'上'    x为unicod类型
        2、unicode编码后的结果
            x='上' #如果文件头为coding:utf-8,那么"上"被存成utf-8格式的二进制      x为str类型

    在python3只有一种字符串编码格式:
        1、unicode
            x='上’    x为str类型

编码与解码
    unicode-------编码encode-------->gbk
    unicode<-------解码decode--------gbk

    #***
    #coding:gbk
    x='上’
    x.decode('gbk')

    #coding:gbk
    x=u'上'
    x.encode('gbk')
    x.encode('utf-8')

   在python3中(*****)
    x='上'
    x只能进行编码
    x.encode('gbk')

    总结python2与python3:
        (***)
        在python2中的字符粗类型str都是unicode按照文件头的指定的编码,编码之后的结果
        在python2中也可以制造unicode编码的字符串。需要在字符串前加u

        (*****)
        在python3中的字符串类型str都是unicode编码的
        所以python3中的字符串类型可以编码成其他字符编码格式,编码的结果
        是bytes类型

猜你喜欢

转载自www.cnblogs.com/yangzhizong/p/9123061.html
今日推荐