zoukankan      html  css  js  c++  java
  • 集合

    集合是无序的,容器类的数据类型,包含的元素是不可变的(是可哈希的)不能包含字典/list等,但是集合本身是可变的。
    • 最重要的作用
      • 集合的去重
      • 关系测试(交集 & ,并集|, 差集 - ,反交集 ^)
    # 集合创建set1 = set({'张三', '李四', False})
    set1 = {'张三', '李四', False}
    print(set1)  # 由于是无序的,每次打印的值不一样
    
    print('空字典', type({})) # 空字典{}
    print('空集合', type(set()))  # 空集合 set()
    # 元素值不能直接更改,可以删除,在添加
    # 增加元素
    set1.add('王五')
    print(set1)
    set1.update('HELLO')  # 没有返回值
    print(set1)  # {False, 'L', 'O', 'H', '张三', '王五', '李四', 'E'} 迭代着增加,天然去重,只有一个L
    
    # 删除元素 按照元素删除,由于是无序的,所以不能按照索引删除
    set1.remove(False)
    # 随机删除
    set1.pop()
    
    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    # 交集 set1.intersection(set2)
    t = (set1 & set2)
    print(t)   # {4, 5}
    # 并集 set1.union(set2)
    print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7, 8}
    # 差集 set1中有,set2中没有 set1.difference(set2) .
    print(set1 - set2)  # {1, 2, 3}
    # 反交集 set2.symmetric_difference(set1)
    print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
    
    
    # 子集 set1.issubset(set2)
    set1 = {1, 2, 3}
    set2 = {1, 2, 3, 4, 5, 6}
    print(set1 < set2)
    # 超级 set2.issuperset(set1)
    print(set2 > set1)
    
    
    # 列表的去重, 但是返回的是无序的,如果还要按照之前的顺序 就不能用set了
    l = [1, 5, 3, 1, 2, 5]
    s = set(l)
    l = list(s)
    print(l)   # [1, 2, 3, 5]
    
  • 相关阅读:
    【c++】中文设置
    《谁动了我的奶酪》读后感
    KMP算法的C++实现
    我也说说中文分词(上:基于字符串匹配)
    删除字符串中的空格
    linux jdk bin安装
    笔试题汇总
    栈的压入、弹出序列
    顺序打印矩阵
    二叉树镜像
  • 原文地址:https://www.cnblogs.com/jnsn/p/12714466.html
Copyright © 2011-2022 走看看