zoukankan      html  css  js  c++  java
  • 第三章--第五节:集合

    集合是一个无需不重复的序列,用 set 来表示

    零、创建集合

    创建集合的方式有两种,分别是 {}set(),下面我们来具体讲解一下。

    1. {} 形式
      {} 形式用来创建一个 非空集合,语法如下:
    set={v1,v2,v3,...,vn}
    

    下面我们通过例子来看一下具体怎么使用

    # 例子一、定义一个包含字符串的集合
    name={'张三','李四','王五','赵六','田七'}
    
    # 例子二、定义一个包含多种类型的集合
    person={'张三',24,63.5}
    
    
    1. set() 形式
      set() 用来创建空集合或者包含数据的集合,语法如下:
    set=set(value)
    

    下面我们通过例子来看一下:

    # 例子一、定义一个空集合
    name=set()
    
    # 例子二、定义一个非空的集合
    abc=set('abcdefghijklmnopqrstuvwxyz')
    
    

    注意1:在定义空集合时,不能使用 {} 来创建,因为 {} 是用来创建空字典的,如果要创建空集合必须使用 set()

    注意2:{} 方式创建集合的方式与创建字典类似,它们的区别是字典的元素是 key:value 形式,而集合则是使用 value 形式。

    一、获取集合元素

    由于集合是无序的,所以索引没有任何意义,所以我们无法利用索引获取和更新元素,但是我们可通过循环的方式获取元素,代码如下:

    # 定义姓名集合
    names={'张三','李四','王五'}
    # 循环输出集合内容
    for name in names:
      print(name)
    

    二、添加、删除集合元素

    1. 添加
      添加元素我们可以使用 add 方法,语法如下:
    set.add(value)
    

    我们通过例子来看一下怎么使用:

    # 定义姓名集合
    names={'张三','李四','王五'}
    # 添加一个新姓名赵六
    names.add('赵六')
    # 打印names,会发现集合中增加了赵六
    print(names)
    
    1. 删除
      删除集合元素我们会使用 remove 方法,语法如下:
    set.remove(要删除的元素)
    

    我们通过例子来看一下具体用法:

    # 定义姓名集合
    names={'张三','李四','王五'}
    # 删除李四
    names.remove('李四')
    # 打印names,会发现集合中李四消失了
    print(names)
    

    三、集合其他操作

    函数 说明
    copy() 拷贝一个集合
    difference() 返回多个集合的差集
    difference_update() 移除集合中的元素,该元素在指定的集合也存在
    discard() 删除集合中指定的元素
    intersection() 返回集合的交集
    intersection_update() 删除集合中的元素,该元素在指定的集合中不存在
    isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
    issubset() 判断指定集合是否为该方法参数集合的子集
    issuperset() 判断该方法的参数集合是否为指定集合的子集
    pop() 随机移除元素
    symmetric_difference() 返回两个集合中不重复的元素集合
    symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
    union() 返回两个集合的并集
    update() 给集合添加元素

    四、小结

    本节主要讲解了集合的操作,集合是一个比较特殊的序列,集合用的比较少,在这个教程中只需要了解即可。在后面我会通过杂文的形式具体讲解集合。

    觉得不错打赏一下吧,金额随意!

  • 相关阅读:
    使用Python开发IOT Edge应用(2)
    使用Python开发IOT Edge应用(1)
    使用Harbor+Auzre IOT Edge构建智能边界(2)
    使用Harbor+Auzre IOT Edge构建智能边界
    Linux开发人员玩转HDInsight集群上的MapReduce
    将人工智能带到物联网边界设备(2)
    将人工智能带到物联网边界设备(1)
    oracle误删存储过程
    ORACLE审计
    ESXI将虚拟机厚置备转换成精简置备
  • 原文地址:https://www.cnblogs.com/gangzhucoll/p/12778224.html
Copyright © 2011-2022 走看看