zoukankan      html  css  js  c++  java
  • 集合+字符编码day07

    一、集合

    基本使用

    1、用途:关系运算,去重

    2、定义方式:{}内用逗号分隔开多个元素,每个元素必须都是不可变类型

    强调:

    1、集合内的元素必须是不可变的类型

    2、集合内的元素无序

    3、集合内的元素不能重复

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

    1、去重的目标所包含的值必须是不可变类型

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

    3、常用的操作+内置方法

    1、长度len

    2、成员运算in和not  in

    3、|并集
    # # print(pythoners | linuxers)
    # # print(pythoners.union(linuxers))
    #
    # #4、&交集
    # # print(pythoners & linuxers)
    # # print(pythoners.intersection(linuxers))
    # # print(linuxers & pythoners)
    # #5、-差集
    # # print(pythoners - linuxers)
    # # print(pythoners.difference(linuxers))
    # # print(linuxers - pythoners)
    # # print(linuxers.difference(pythoners))
    # #6、^对称差集
    # print(pythoners ^ linuxers)
    # print(pythoners.symmetric_difference(linuxers))
    #
    # # print(linuxers ^ pythoners)
     #8、父集(包含关系):>,>=
    # # s1={1,2,3,4,5}
    # # s2={1,2,3}
    # # print(s1 > s2) # s1包含s2
    # # print(s1.issuperset(s2))
    # # print(s2.issubset(s1))
    #
    # # s3={1,2,10}
    # # print(s1 > s3)
    #
    # # s1={1,2,3,4,5}
    # # s2={1,2,3,4,5}
    # # print(s1 >= s2)
    #
    # #9、子集(被包含的关系):<,<=
    #
    # s1={1,2,3,4,5}
    # # s1.add(6)
    # # print(s1)
    #
    # # s1.update({4,7,8,9})
    # # print(s1)
    #
    # # res=s1.pop()
    # # print(res)
    #
    # # res=s1.remove(4)
    # # print(res)
    # # print(s1)
    #

    该类型总结:

    1、可以存多个值,但是值的类型都必须是不可变类型

    2、无序

    3、集合是可变的类型

    stu_info=[
         {'name':'egon','age':18,'sex':'male'},
         {'name':'egon','age':18,'sex':'male'},
         {'name':'egon','age':18,'sex':'male'},
         {'name':'alex','age':73,'sex':'male'},
         {'name':'oldboy','age':84,'sex':'female'},
     ]
    new.info=[]
    for into in stu_info:
        if info not in new_info:
            new_info.append(info)
    print(new_info)
    View Code

    二、字符编码

    1、将人类的字符编码/转换成计算机能识别的文字

    2、这种转换必须遵循一套固定的标准,该标准无非是人类字符与数字的对应关系,称之为字符编码表

    bit:二进制位
    Bytes:字节

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

    1英文字符=8bit = 1Bytes

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

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

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

    Unicode:

    1、字符兼容万国

    2、和老版本的编码表有映射关系

    utf-8:可以兼容万国,但是和老版本的编码表没有映射关系

    #字符编码需要记住的概念
    #01 内存中固定使用unicode编码,我们唯一可以改变的存储到硬盘时使用的编码
    #02 要想保证存取文件不乱乱码,应该保证文档当初是以什么编码格式存的,就应该以什么编码格式去读取

    03 python3解释器默认编码是UTF-8
    python2解释器默认编码是ASCII


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

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

    #04 编码与解码
    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类型

  • 相关阅读:
    一次“半面试”——汉得
    检查随机序列重复[Java]
    设计模式 工厂方法(Factory Method Pattern)转载
    sprintf用法详解
    MFC ComboBox的使用
    Visual Studio 2008 中程序路径配置 .
    Visual Studio 2008 、 Windows 环境变量介绍 和 如何在文件中引用环境变量 .
    MFC总结之CListCtrl用法及技巧(二) .
    C/C++中Sqlite使用简介
    getenv、setenv函数 获取和设置系统环境变量
  • 原文地址:https://www.cnblogs.com/xiaocao736427460/p/9133549.html
Copyright © 2011-2022 走看看