zoukankan      html  css  js  c++  java
  • set的使用

    集合是Python的一种数据类型,集合是一个可变容器。常用于列表的去重。

    什么是集合

    • 集合是一个可变容器
    • 集合中的数据对象都是唯一的(不可重复)
    • 集合是无序的存储结构
    • 集合是可迭代对象
    • 集合内的元素是不可变的

    创建集合

    • 使用{}创建集合,集合元素使用,隔开
    s = {1, 2}
    

    注意:使用{}不可以创建空集合,因为创建出来的是一个字典。

    • 使用构造函数创建集合
    s = set()
    

    集合的运算

    • 交集- &
    s1 = {1, 2, 3}
    s2 = {2, 3, 4}
    print(s1 & s2)
    
    • 并集- |
    s1 = {1, 2, 3}
    s2 = {2, 3, 4}
    print(s1 | s2)
    
    • 补集- -
    s1 = {1, 2, 3}
    s2 = {2, 3, 4}
    print(s1 - s2) 
    # 生成属于s1但不属于s2的所有元素
    
    • 对称补集- ^
    s1 = {1, 2, 3}
    s2 = {2, 3, 4}
    print(s1 - s2) 
    
    • 还有一些基本的运算,可以查看Python运算符进行学习

    集合的内建函数

    • len() 集合内元素的个数
    • max() 最大值
    • min() 最小值
    • sum() 和
    s = {11, 22, 44, 6, 0, 10}
    print(len(s))
    print(max(s))
    print(min(s))
    print(sum(s))
    
    • any() 任何一个元素为真,返回真
    s = {11, 0}
    boolean = any(s)
    print(boolean)
    
    • all() 所有元素为真,返回真
    s = {11, 22, 33, "string"}
    boolean = all(s)
    print(boolean)
    

    集合的方法

    • add() 添加元素,元素存在,则不执行
    s = {11, 22, 33}
    s.add(44)
    print(s)
    
    • clear() 清空集合所有的元素
    s = {11, 22, 33}
    s.clear()
    print(s)
    
    • remove() 移除指定的元素
    s = {11, 22, 33, 44, 55}
    s.remove(11)
    print(s)
    
    • pop() 随机删除一个元素
    s = {11, 22, 33, 44, 55}
    s.pop()
    print(s)
    
    • difference() 返回两个集合的补集
    s1 = {11, 22, 33, 44}
    s2 = {55, 66, 77, 22, 44, 88}
    print(s1.difference(s2))
    
    • difference_update() 移除两个集合中都存在的元素
    s1 = {11, 22, 33, 44}
    s2 = {55, 66, 77, 22, 44, 88}
    s1.difference_update(s2)
    print(s1)
    print(s2)
    
    • isdisjoint() 判断两个集合中是否有相同的元素,返回一个布尔值,没有返回True,否则就是False
    s1 = {11, 22, 33, 44}
    s2 = {55, 66, 77, 22, 44, 88}
    boolean = s1.isdisjoint(s2)
    print(boolean)
    
    • 以上只介绍部分常用方法,等待你的补充

    集合的遍历

    s = {11, 22, 33, 44, 55}
    for i in s:
        print(i)
    

    集合推导式

    集合推导式允许使用可迭代对象生成集合的表达式

    语法:

    {表达式 for 变量 in 可迭代对象 if 条件}
    
    l = [1, 2, 3, 4, 5, 6]
    s = {x for x in l if x %2 == 0}
    print(s)
    

    集合的去重

    list1 = [11, 22, 33, 11, 22, 11, 44, 11]
    print(set(list1))
    

    固定集合

    • 不可变的容器,无序,元素唯一

    创建固定集合- 使用构造函数(frozenset)

    fs = frozenset()
    fs_num = frozenset([1, 2, 3, 4])
    
    • 固定集合的运算
      • 交集,并集, 补集,对称补集
      • in / not in
      • 其他运算符
    • 固定集合的方法
      • 取出修改集合的方法,其余便是固定集合的方法

    由于固定集合在实际开发中,用到的不是很多,所以没有展开详细教程。

  • 相关阅读:
    LeetCode(65) Valid Number
    LeetCode(57) Insert Interval
    Python 之scrapy框架58同城招聘爬取案例
    Python 之12306网站验证码校验案例
    Python 之selenium+phantomJS斗鱼抓取案例
    Python 之pytesseract模块读取知乎验证码案例
    Python 之糗事百科多线程爬虫案例
    Python 之beautifulSoup4解析库
    Python 之lxml解析库
    把一张的数据添加到另一张中
  • 原文地址:https://www.cnblogs.com/liudemeng/p/12218549.html
Copyright © 2011-2022 走看看