美文网首页
py_10 集合:交、并、差、对称差集

py_10 集合:交、并、差、对称差集

作者: 阿登20 | 来源:发表于2020-07-20 16:46 被阅读0次

    集合

    一、集合的作用: 去重
    二、集合的创建
    - set()   空集合
    - {} 不是集合,是一个空字典
    三、增(add update)
    add(obj),增加元素,元素重复不增加
    update(iterable) 参数是多个可迭代对象
    四、删(pop discard remove)
    pip() 随机删除 discard(obj)删除不存在的元素不报错 remove()元素不存在报错
    五、集合特有的操作:交、并、差、对称差集
    - a&b :交集 表两个集合的共同元素,等价于a.intersection(b)
    
    - a|b:并集  表两个集合的所有元素,等价于a.union(b)
    
    - a-b:差集  表只属于a,但不属于b的元素,等价于a.difference(b)
    
    - a^b:对称差分集  表两个集合的非共同元素,等价于a.symmetric_difference(b)
    
    image.png

    一、集合的作用

    • 去重
    • 集合是无序的序列类型

    二、集合的创建

    • set() 空集合
    • {} 不是集合,是一个空字典

    三、增(add update)

    add(obj),增加元素,元素重复不增加

    a = set("abc")
    a.add("cd")
    print(a) # {'cd', 'b', 'c', 'a'}
    

    update(iterable) 参数是多个可迭代对象

    a = set("abc")
    a.update((1,2,3),[4,5,6],{"name": "阿登", "age": 18})
    print(a)  # {1, 2, 3, 4, 5, 6, 'age', 'name', 'a', 'b', 'c'}
    

    四、删(pop discard remove)

    1.pop()随机删除

    # discard(obj) obj元素不存在不会报错
    # remove(obj)  元素不存在会报错
    a = set("abc")
    a.pop()
    print(a)   # {'c', 'a'}
    

    2.discard(obj) 删除,元素不存在不会报错

    a = set("abc")
    a.discard("a")  # 删除一个存在的元素 a
    print(a)   # {'c', 'b'}
    a.discard(1)   # 删除一个不存在的元素 1,不会报错
    print(a)    # {'c', 'b'}
    

    3.remove(obj) 元素不存在会报错

    # remove(obj)
    a = set("abc")
    a.remove("a")  # 删除一个存在的元素 a
    print(a)   # {'c', 'b'}
    a.remove(1)   # 删除一个不存在的元素 1,会报错
    print(a)    # KeyError: 1
    

    五、集合特有的操作:交、并、差、对称差集

    集合里面交、并、差、对称差集其实也是集合的专用操作。

    • a&b :交集 表两个集合的共同元素,等价于a.intersection(b)

    • a|b:并集 表两个集合的所有元素,等价于a.union(b)

    • a-b:差集 表只属于a,但不属于b的元素,等价于a.difference(b)

    • a^b:对称差分集 表两个集合的非共同元素,等价于a.symmetric_difference(b)

    a = {1, 2, 3, 4}
    b = {3, 4, 5, 6}
    
    # 1.求并集,重复的会删除
    c = a | b
    print(c) # {1, 2, 3, 4, 5, 6}
    e = a.union(b)
    print(e)  #  {1, 2, 3, 4, 5, 6}
    
    # 2. 求交集,两者共有的元素
    c = a & b
    print(c) # {3, 4}
    e = a.intersection(b)
    print(e)  # {3, 4}
    
    # 3. 求差集,只属于前者的元素
    c = a - b
    print(c) # {1, 2}
    e = a.difference(b)
    print(e)  # {1, 2}
    
    # 4.求 对称差集,两个集合的非共同元素
    c = a ^ b
    print(c) # {1, 2, 5, 6}
    e = a.symmetric_difference(b)
    print(e)  # {1, 2, 5, 6}
    

    相关文章

      网友评论

          本文标题:py_10 集合:交、并、差、对称差集

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