博客
关于我
【从零学习python 】23. Python中集合(set)的使用方法和常见操作
阅读量:589 次
发布时间:2019-03-11

本文共 1539 字,大约阅读时间需要 5 分钟。

Python集合(set)的使用指南

集合(set)是Python中的一种数据结构,它是一个无序且不允许重复元素的元素集合。集合在数据处理和操作中非常有用,特别是在需要去重、快速查找和批量操作时。

创建集合

集合在Python中可以通过两种方式创建:

  • 使用大括号语法{value1, value2, ...}创建非空集合。
  • 使用set()函数创建集合,set()函数可以接收多个参数,或者接收一个可迭代对象(如列表、元组、字典等)。
  • 需要注意的是,创建空集合时,必须使用set()函数而不是大括号{},因为大括号在Python中用于创建空字典。

    示例:

    # 创建非空集合
    my_set = {1, 2, 3}
    # 创建空集合
    empty_set = set()

    集合的基本操作

    添加元素

    集合支持通过add()方法添加单个元素,或者使用update()方法批量添加多个元素。

    示例:

    # 添加单个元素
    my_set.add(4)
    # 批量添加多个元素
    my_set.update([5, 6, 7])

    移除元素

    集合支持通过remove()方法移除指定元素,或者使用discard()方法来安全移除指定元素(即使元素不存在也不报错)。

    示例:

    # 移除指定元素
    my_set.remove(3)
    my_set.discard(3) # 如果元素不存在也不报错

    其他常用方法

    集合还提供了许多其他方法,包括:

    • clear():清空集合。
    • copy():复制集合。
    • pop():随机移除一个元素。
    • union():返回两个集合的并集。
    • intersection():返回两个集合的交集。
    • difference():返回两个集合的差集。
    • symmetric_difference():返回两个集合的对称差集。

    下面是一个完整的方法列表:

    方法 描述
    add() 添加一个元素到集合中。
    clear() 移除集合中的所有元素。
    copy() 创建一个新集合的拷贝。
    pop() 随机移除集合中的一个元素,并返回它。
    remove() 移除集合中的一个指定元素。如果元素不存在会抛出错误。
    discard() 移除集合中的一个指定元素。如果元素不存在不会抛出错误。
    update() 将给定的可迭代对象中的元素添加到集合中。如果已存在则忽略。
    union() 返回两个集合的并集。
    intersection() 返回两个集合的交集。
    difference() 返回两个集合的差集。
    symmetric_difference() 返回两个集合的对称差集。
    issubset() 判断该集合是否是另一个集合的子集。
    issuperset() 判断该集合是否是另一个集合的超集。
    superset() 判断另一个集合是否是该集合的子集。
    subset() 判断另一个集合是否是该集合的子集。

    练习:去重并排序

    给定一个包含重复元素的无序列表:

    nums = [5, 8, 7, 6, 4, 1, 3, 5, 1, 8, 4]

    目标:去重并按降序排序。

    方法一:使用集合和内置sort方法

    nums2 = list(set(nums))
    nums2.sort(reverse=True)
    print(nums2)

    方法二:使用sorted内置函数

    print(sorted(list(set(nums)), reverse=True))

    进阶案例:集合的高级使用

    集合在Python中非常灵活,可以与其他数据结构和函数结合使用。例如:

    • 使用集合来存储唯一的键值对。
    • 使用集合进行速度敏感的操作(如哈希表)。
    • 使用集合进行并集、交集等高级操作。

    通过合理使用集合,可以显著提升代码的性能和可读性。

    转载地址:http://luovz.baihongyu.com/

    你可能感兴趣的文章
    openlayers 入门教程(六):controls 篇
    查看>>
    openlayers 入门教程(十一):Formats 篇
    查看>>
    openlayers 入门教程(十三):动画
    查看>>
    openlayers 入门教程(十二):定位与轨迹
    查看>>
    openlayers 入门教程(十五):与 canvas、echart,turf 等交互
    查看>>
    openlayers 入门教程(十四):第三方插件
    查看>>
    openlayers 入门教程(四):layers 篇
    查看>>
    OpenLayers 项目分析(三)-OpenLayers中定制JavaScript内置类
    查看>>
    Openlayers下载与加载geoserver的wms服务显示地图
    查看>>
    Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
    查看>>
    Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
    查看>>
    Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
    查看>>
    Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
    查看>>
    Openlayers中使用Overlay实现点击要素弹窗并且弹窗随之移动
    查看>>
    Vmware系列&虚拟机系列【仅供参考】:使用vCenter Auto Deploy制作ESXI系统封装(适合高版本vSphere)
    查看>>
    Openlayers中加载GeoJson文件显示地图
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片图层组
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片地图并显示
    查看>>
    Openlayers中多图层遮挡时调整图层上下顺序
    查看>>
    Openlayers中实现地图上添加一条红色直线
    查看>>