• 第一模块 day5


    2.19    2.20        集合
    
    1/    里面的元素不可变,你不能存list dict在集合里, 字符串 数字 元组等不可变的类似可以存
    2/    天生去重
    3/    无序, 
    
    集合可以干2件事
    
    去重    和    关系运算, 交集  差集  并集
    
    a = {1,2,3,4,2,'alex',3,'rain','alex'}
    
    print(a)
    
    {1, 2, 3, 4, 'alex', 'rain'}
    
    天生去重,所以重复的值 存不进去
    
    
    ----------------------
    
    帮列表去重, 因为集合天生去重,所以 想办法把列表转成集合, 去重后,在转回列表
    
    
    li = [1,2,1,22,3,2,1,4,'rain','alex']
    print(li)
    newli = set(li)
    print(newli)
    print(list(newli))
    
    --------------------------------------------
    
    D:Pythonpython.exe D:/cc/集合.py
    [1, 2, 1, 22, 3, 2, 1, 4, 'rain', 'alex']
    {1, 2, 3, 4, 'alex', 'rain', 22}
    [1, 2, 3, 4, 'alex', 'rain', 22]
    
    
    如上所示,列表可以存多个重复的值,也存在多个重复的值,想把列表去重
    
    1/     通过set 把列表转成 集合
    
    2/     集合在转成列表
    
    -----------------------------------------
    
    
    增:    add()
    
    a ={1, 2, 3, 4, 'alex', 'rain'}
    a.add(5)
    a
    {1, 2, 3, 4, 5, 'alex', 'rain'}
    
    
    删:    discard()        注意:如果删除一个不存在的值, 不会报错,也不会返回数据
    
    a
    {1, 2, 3, 4, 5, 'alex', 'rain'}
    a.discard('alex')
    a
    {1, 2, 3, 4, 5, 'rain'}
    
    
    
    pop()     随机删除,少用,用在特定场景
    
    a.pop()            pop 是随机删除.  因为数据量太少,肉眼看上去是按照顺序删除的..这叫幻觉
    1
    a
    {2, 3, 4, 5, 'rain'}
    
    
    remove()        类似 discard ,但是 如果删除一个不存在的值,会报错.
    
                删除存在的不报错,但是也不会返回数据
    
    
    a
    {2, 3, 4, 5, 'rain'}
    a.remove(1)
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    KeyError: 1
    
    
    
    2.20    集合关系运算
    
    
    s_1024 = {"佩奇","老男孩","海峰","马JJ","老村长","黑姑娘","Alex"}
    
    s_pornhub = {"Alex","Egon","Rain","马JJ","Nick","Jack"}
    
    
    1/    交集     &        intersection()   把在集合1 和集合2 都存在的 取出来
    
    注意:intersection.update()  取出来的结果 和 intersection()一样,但是会把原集合重新覆盖..为取出来的数据
    
    s_1024 & s_pornhub            s_1024.intersection(s_pornhub)
    {'Alex', '马JJ'}
    
    
    ---------------------------
    
    
    
    2/    并集 or 合集        |    union()        把2种数据合并在一起,去重了
    
    
    s_1024 | s_pornhub            s_1024.union(s_pornhub)
        
    {'老村长', 'Rain', '佩奇', 'Egon', 'Nick', '黑姑娘', 'Alex', '海峰', '老男孩', 'Jack', '马JJ'}
    
    
    ------------------------
    
    
    
    3/    差集     -     difference()    只看1024的.如果看过1024,也看过pronhub,就不显示
    
    注意:difference_update() 取出来的结果 和 difference()一样,但是会把原集合重新覆盖..为取出来的数据
    
    s_1024 - s_pornhub            s_1024.difference(s_pornhub)
    
    {'老村长', '佩奇', '黑姑娘', '海峰', '老男孩'}
    
    
    -------------------------------
    
    
    4/    对称差集        ^    symmetric_difference()      把脚踩2只船的T出去        
    
    s_1024 ^ s_pornhub            s_1024.symmetric_difference(s_pornhub)
    
    {'Egon', '老村长', '佩奇', 'Nick', '黑姑娘', '老男孩', 'Jack', 'Rain', '海峰'}
    
    
    
    
    --------------------------------------------
    
    1/    判断2个集合是不是  不相交  ,返回True or False
    
    print(s_1024.isdisjoint(s_pornhub))
    False
    
    因为真是结果相交,所以 返回 False
    
    
    2/    判断s_1024是不是s_pornhub的子集,返回True or False
    
    print(s_1024.issubset(s_pornhub))
    False
    
    因为1024并不是pronhub的子集,所以返回 False
    
    
    3/    判断s_1024是不是s_pornhub的父集,返回True or False
    
    print(s_1024.issuperset(s_pornhub))
    False
    
    因为1024并不是pronhub的子集,所以返回 False
    
    
    ---------------------------------------------------
    
    
    2.21    二进制
    
    
    
        128    64    32    16    8    4    2    1
    
    
    245的二进制是什么.可以这样思考
    
    上面全部加起来为 255, (128*2)-1=255
    所以 255-10 =245  去掉10个,那么就成功了
    8+2=10,那么去掉8 和2 ,结果就是
    11110101,    用内置函数看一下结果是否正确:
    
    bin(245)
    '0b11110101'
    
    
        128    64    32    16    8    4    2    1
        1      1     1     1     0    1    0    1
    
    -------------------------------
    
    
    2.22        字符编码-文字是如何显示的
    
    
            ord()
    
    每一位0或者1所占的空间单位为bit(比特),这是计算机中最小的表示单位
    
    每8个bit组成一个字节,这是计算机中最小的存储单位(毕竟你是没有办法存储半个字符的)
    
    每8个2进制位代表一个字符
    
    bit  位,计算机中最小的表示单位
    8bit = 1bytes 字节,最小的存储单位,1bytes缩写为1B
    1KB=1024B
    1MB=1024KB
    1GB=1024MB
    1TB=1024GB
    1PB=1024TB
    1EB=1024PB
    1ZB=1024EB
    1YB=1024ZB
    1BB=1024YB
    
    
    -----------------------------------
    
    
    2.26    16进制
    
    
    16进制转换10进制
    
    0    1    2    3    4    5    6    7    8    9    A = 10, B = 11,,C =12,D=13,E=14,F= 15
    
    FFF=15(16^2) + 15(16^1) + 15*(16^0) = 4095
    
    hex(4095)
    '0xfff'
    
    
    
    10进制转16进制算法
    
    
    除16取余数得最低1位,然后把商继续除得第2位,直到商等于0
    
    举例:    23612 16进制结果
    
    解:    23612 /16 = 1475.75        取1475
        23612 %16 =    12
    
        1475 /16 =    92        取92
        1475 %16 =    3
    
        92    /16    = 5.75    取5
        92    %16    = 12
    
        5 /16 =    0.3125    取0
        5%16 = 5%那一行    结果为: 0x 5 12 3 12 ,12等于c 所以为: 0x5c3c
    
    
    hex(23612)
    '0x5c3c'
    
    
    -------------------------------------------
  • 相关阅读:
    [转载]Oracle查看当前用户权限
    [转载]Oracle查看当前用户权限
    UltraEdit实用技巧
    _splitpath,_makepath分析路径
    [ZT]让你的软件界面更漂亮(1、2)
    [book]程序员修炼之道
    考考你的C++水平
    将*.STL转换成顶点索引格式
    JBuilder 2006 企业完整版
    [book]道法自然
  • 原文地址:https://www.cnblogs.com/666sss/p/11580345.html
Copyright © 2020-2023  润新知