美文网首页python学习
Python集合学习笔记

Python集合学习笔记

作者: 松柏林stata | 来源:发表于2018-07-03 12:02 被阅读0次

    定义:

    由不同的元素组成的集合,集合中是一组无序排列的可hash值,可作为字典的key,而且集合中的值不可重复。

    特性:

    集合的目的就是将不同的值存放在一起,不同的集合间来做关系运算,无序纠结集合中单个值

    集合包括可变集合和不可变集合

    hash是什么?

    打个比方,比如说有一个文件(不管多大),对这个文件要进行一个hash校验,会得到一个校验值(固定长度)。

    hash是一种统称,具体要进行校验的话,是需要调用它下面的算法。(校验就是通过一个算法算出这个文件的一个值)。

    特点:

    1.只要用的算法是一定,那么得到的值的长度永远是一定的

    2.原值(被校验的值)只要改一点,那么在此校验的值将会改变

    3.不可逆。不可能通过一串hash值来推导出这个文件内容

    算法:MD5 SH512等等

    用途:最多的用途就是进文件校验(看文件是否被篡改)。再一个就是tcp/ip协议。只能对不可变的值进行hash校验。如果集合中有可变类型那么回保错。

    s={1,'a',[1,2,3],'a'}
    print(s)
    
    Traceback (most recent call last):
      File "C:/Users/Administrator/PycharmProjects/untitled/day9/集合.py", line 4, in <module>
        s={1,'a',[1,2,3],'a'}
    TypeError: unhashable type: 'list'
    
    e,g
    

    说列表是不可hash类型

    在python中,看到不可hash类型就是可变类型,反之,可hash类型就是不可变类型

    去重

    s={1,'a','a'}
    print(s)
    
    {'a', 1}
    

    无序

    s={1,'a',(1,2,3),}
    print(s)
    

    {'a', 1, (1, 2, 3)}


    s=set('hello')
    print(s)

    s=set(['alex','alex','sb'])
    print(s)

    s={1,2,3,4,5,6}

    添加

    s.add('s')
     s.add('3')
    s.add(3)
    print(s)
    

    清除

    s.clear()
     print(s)
    

    复制

    s1=s.copy()
    

    随机删

    s={'sb',1,2,3,4,5,6}
    s.pop()
    

    指定删除

    s.remove('sb')
    s.remove('hellol') #删除元素不存在会报错
    s.discard('sbbbb') #删除元素不存在不会报错
    print(s)
    

    求交集

    python_l=['lcg','szw','zjw','lcg']
    linux_l=['lcg','szw','sb']
     p_s=set(python_l)
     l_s=set(linux_l)
    print(p_s,l_s)
    print(p_s.intersection(l_s))
    print(p_s&l_s)
    

    求并集

    print(p_s.union(l_s))
    print(p_s|l_s)
    

    差集

    print('差集',p_s-l_s)
    print(p_s.difference(l_s))
    print('差集',l_s-p_s)
    print(l_s.difference(p_s))
    

    交叉补集

    print('交叉补集',p_s.symmetric_difference(l_s))
    print('交叉补集',p_s^l_s)
    
    python_l=['lcg','szw','zjw','lcg']
    linux_l=['lcg','szw','sb']
    p_s=set(python_l)
    l_s=set(linux_l)
    print(p_s,l_s)
    print('差集',p_s-l_s)

    相关文章

      网友评论

        本文标题:Python集合学习笔记

        本文链接:https://www.haomeiwen.com/subject/ebpduftx.html