美文网首页Python
Python的基础知识之常用类型-集合

Python的基础知识之常用类型-集合

作者: 摸着石头过河_崖边树 | 来源:发表于2020-03-01 20:43 被阅读0次

    每种语言都有基本的数据类型,比如整型、浮点型、字符串、列表等,但是小编今天主要记录列表数据类型。


    tmpdir__17_9_7_15_06_52.gif

    集合(set/frozenset)

    集合的特点:无序的,不可随机访问,不可重复(很重要);
    可以有交集 并集 补集。

    集合的分类:集合分为可变的集合(set)、不可以变集合(frozenset)
    可变的集合才会有 增删改查,不可变集合没有;

    类型中列表、字典、字符串都是可变集合, 元祖是不可变集合

    1. 集合的定义

    方法一:直接写大括号

       s = {435, 45, 5}
       print(s, type(s))
    

    方法二:set(Iterable,可迭代对象)

    s = set([34, 56, 7])
    print(s, type(s))
    s1 = frozenset((1, 3, 5))
    s1 = frozenset([1, 3, 5])
    s1 = frozenset({'name': 'lzb', 'age': 18})
    

    方法三:集合推导式

    s = set(x * x for x in range(0, 4))
    s = frozenset(x * x for x in range(0, 6))
    print(s, type(s))
    
    2. 集合的去重

    集合新增的数必须是可哈希的(不可变的)

    list1 = [1, 3, 4, 5, 6, 2, 1]
    set1 = set(list1)
    result = list(set1)
    print(result)
    
    3. 单一集合的操作增、删、改、查

    3.1 新增

    s = {1, 2, 3}
    s.add(4)
    

    3.2 删除

    # remove  没有这个元素  报错
    print(s.remove(12))
    
    # discard    没有这个元素  不报错 返回 None
    print(s.discard(12))
    
    # pop   随机删除一个元素  空集合删除会报错
    print(s.pop())
    print(s.pop())
    print(s.pop())
    print(s.pop())
    
     # clear  清空集合  返回 None
     print(s.clear())
    

    3.3 集合的查询,集合不可以修改

    # 集合的遍历 方式一 for in 
    for v in s:
        print(v)
    
    # 集合的遍历 方式二 迭代器
    its = iter(s)
    print(next(its))
    print(next(its))
    print(next(its))
    
    4. 集合之间的操作交集 并集 补集

    4.1 intersection(Iterable) 求交集 可变与不可变交集时候 以intersection左侧为基准

    # intersection_update 求交集  只有不可变才有  会修改调用者
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6}
    result = s1.intersection(s2)
    print(result, type(result))
    
    s1 = frozenset([1, 2, 3, 4, 5])
    s2 = {4, 5, 6}
    result = s2 & s1
    print(result, type(result))
    
    s1 = frozenset([1, 2, 3, 4, 5])
    s2 = {4, 5, 6}
    s2.intersection_update(s1)
    print(s2, type(s2))
    
    s1 = {1, 2, 3, 4, 5}
    print(s1.intersection([1, 2, 3]))
    

    4.2 union(Iterable) 求并集

     # update 求交集  只有不可变才有  会修改调用者
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6}
    print(s1.union(s2))
    
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6}
    print(s1 | s2)
    

    4.3 difference(Iterable) 求补集 差集

     # difference_update  求补集 差集  只有不可变才有  会修改调用者
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6}
    print(s1.difference(s2))
    
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6}
    print(s1 - s2)
    

    4.4 判断 判断集合是否包含

    # isdisjoint 是否不相交
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6}
    print(s1.isdisjoint(s2))
    
    # issuperset 是否全包含  s1 包含 s2
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5}
    print(s1.issuperset(s2))
    
    # issuperset 是否全包含  s2 是 s1 的子集
    s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5}
    print(s2.issubset(s1))
    
    最后赠言

    学无止境,学习Python的伙伴可以多多交流

    相关文章

      网友评论

        本文标题:Python的基础知识之常用类型-集合

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