zoukankan      html  css  js  c++  java
  • set集合

    集合是无序的,不重复的数据集合,它里面的元素是可塔哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。

    集合的特点:

      1、它是无序的,且是不重复的
      2、集合里的元素必须是可哈希的(int、str、bool、tuple),但是它本身是不可哈希的
      3、集合不能更改其内部的元素,只能新增和删除
      4、集合可以求交集、并集、差集、反交集等

    #利用集合去重
    lis = [1,1,2,2,3,3,3,4,5,6,6,7]
    set1 = set(lis)
    lis = list(set1)
    print(lis)          #[1, 2, 3, 4, 5, 6, 7] 

    集合的日常操作:

    1、集合的创建

    set1 = set({1,2,'alex'})
    set2 = {'alex','wusir','egon'}
    

    2、集合的增加

    set1 = set({1,2,3})
    #1、set.add(obj) 添加一个元素
    set1.add('wukong')
    print(set1)         #{'wukong', 1, 2, 3}
    
    #2、set.update(seq) 迭代着将每一个元素逐一添加进去
    set1.update('abc')
    print(set1)         #{1, 2, 3, 'wukong', 'c', 'a', 'b'}
    

    3、集合的删除

    #删除集合元素
    set1 = {'alex','wusir','ritian','egon','barry'}
    #1、set.remove(obj) 按照元素去删除
    set1.remove('ritian')
    print(set1)             #{'alex', 'egon', 'barry', 'wusir'}
    
    #2、set.pop() 随机删除某个元素
    set1.pop()
    print(set1)             #{'wusir', 'egon', 'alex'}
    

    4、清空集合、删除集合

    set1 = {'alex','wusir','ritian','egon','barry'}
    #1、清空集合 set.clear()
    set1.clear()
    print(set1)         #set()
    
    #2、删除集合 del set
    del set1
    print(set1)         #报错: name 'set1' is not defined
    

    5、集合的查询

    set1 = {'alex','egon','barry'}
    for item in set1:
        print(item, end='  ')       #alex  egon  barry
    

    6、集合的其它操作

    6.1、交集

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    #1、使用 &
    print(set1 & set2)              #{4, 5}
    #2、intersection()
    print(set1.intersection(set2))  #{4, 5}

    6.2、并集

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    #1、使用 |
    print(set1 | set2)          #{1, 2, 3, 4, 5, 6, 7, 8}
    #2、union()
    print(set1.union(set2))     #{1, 2, 3, 4, 5, 6, 7, 8}
    

    6.3、反交集

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    #1、使用 ^
    print(set1 ^ set2)                      #{1, 2, 3, 6, 7, 8}
    #2、symmetric_difference()
    print(set1.symmetric_difference(set2))  #{1, 2, 3, 6, 7, 8}
    

    6.4、差集

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    #1、使用 - 
    print(set1 - set2)              #{1, 2, 3}
    print(set2 - set1)              #{8, 6, 7}
    #2、difference()
    print(set1.difference(set2))    #{1, 2, 3}
    

    6.5、子集与超集

    set1 = {1,2,3}
    set2 = {1,2,3,4,5,6}
    
    #1、子集 <、issubset()
    print(set1 < set2)              #True
    print(set1.issubset(set2))      #True
    #2、超集 >、issuperset()
    print(set2 > set1)              #True
    print(set2.issuperset(set1))    #True
    

    7、frozenset()不可变集合,让集合变成不可变类型

    set1 = {1,2,3}
    set2 = frozenset(set1)
    print(set2,type(set2))  #frozenset({1, 2, 3}) <class 'frozenset'>

      

  • 相关阅读:
    前端每日实战:11# 视频演示如何用纯 CSS 创作一个荧光脉冲 loader 特效
    前端每日实战:11# 视频演示如何用纯 CSS 创作一个荧光脉冲 loader 特效
    前端每日实战:11# 视频演示如何用纯 CSS 创作一个荧光脉冲 loader 特效
    浏览器内部工作原理
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/lioushell/p/8386076.html
Copyright © 2011-2022 走看看