【Python数据类型-集合】无序序列&可变数据类型&元素唯一

  • 1.集合定义
  • 符号{}
  • 创建空集合,set1 = set()
  • 创建非空集合:
    • set1 = set(obj)  
      • 场景1: 字典
        
            my_dict = {"name":"chinese","age":28}
            print(set(my_dict)) # {"age","name"}
        
        场景2: 列表
        
            my_list = [3,4,5]
            print(set(my_list)) # {3,4,5}
    • set2 = {1,2,3,4}  元素需要是不可变数据类型
2.集合推导式

       {i for i in 可迭代对象  判断条件}

 set1 = {i for i in range(5)}

 print(set1) # {0, 1, 2, 3, 4}
3.集合的操作方法
  • 增add(element)
  • set1 = {1,2,3}
    
    set1.add(4)
    
    print(set1)  # {1,2,3,4}
    • clear()
      • 清除所有元素

  • set1 = {1, 2, 3}
    
    set1.clear()
    
    print(set1)  # set()
    • discard()
      • 删除指定值,无返回值;指定值不存在不会报错

    • 场景1: 指定值存在
      
      set1 = {1, 2, 3}
      
      s = set1.discard(2)
      
      print(set1)  # {1, 3}
      
      
      
      场景2: 指定值不存在,无报错
      
      set1 = {1, 2, 3}
      
      s = set1.discard(4)
      
      print(set1)  # {1, 2,3}
    • remove(element)
      • 删除指定值,无返回值但是无指定值会报错
    • update(iterable1,,iterable2...)
      • 取并集,改变原集合
        • lst = [1, 4, 2, 8, 25]
          
          se = {1, 8, 22, 83}
          
          se.update(lst)
          
          print(se)  # {1, 2, 4, 8, 83, 22, 25}
    • 取集合间并集,并返回新集合
      • ​​​​​​|

        • set1 = {1, 2, 3}
          
          set2 = {2, 3, 5}
          
          print(set1 | set2))  # {1,2,3,5}
          
      • union(iterable)

        • set1 = {1, 2, 3}
          
          set2 = {2, 3, 5}
          
          print(set1.union(set2))  # {1,2,3,5}
          
    • 取集合间的差集,并返回新集合
      • -
    • 取集合间交集,并返回新集合
      • intersection(iterable)
      • set1 = {1, 2, 3}
        
        set2 = {2, 3, 5}
        
        print(set1.intersection(set2))  # {2,3}
      • &     
      • set1 = {1, 2, 3}
        
        set2 = {2, 3, 5}
        
        print(set1 & set2)  # {2,3}
        
4. 集合应用场景:
  • 场景1:去重,但无法保证原来的元素顺序

  • 场景2: 求取集合长度

  • 场景3: 成员验证

  • 场景4: for循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值