• Python_数据容器_集合set


    一、集合set的定义

    考虑使用集合的场景,通过已经学习的列表、元组、字符串三个数据容器特性来分析:

    • 列表可以修改、支持重复元素且有序

    • 元组、字符串、不可修改、支持重复元素且有序

    局限就在于:它们支持重复元素

    集合定义语法:

    二、集合的特点

    集合-->不支持重复元素(自带去重功能)且无序

    三、集合的操作

    集合的常用操作 -- 修改

    由于集合无序,因此不支持:下标索引访问 也因此集合不是序列

    但是集合和列表一样是支持修改的

    1、添加新元素 add()

    语法:集合.add(元素)  将指定元素添加到集合内

    结果:集合本身被修改添加了新元素

    2、移除元素 remove()

    语法:集合.remove(元素)  将指定元素从集合内移除

    结果:集合本身被修改移除了元素

    3、从集合中随机取出元素 pop()

    语法:集合.pop(元素) 

    结果:得到一个元素的结果。同时集合本身被修改,元素被移除

    4、取两个结果的差集 difference()

    语法:集合1.difference(集合2)   即就是取出集合1有而集合2没有的

    结果:得到一个新集合,集合1和集合2不变。

    5、消除2个集合差集  difference_update()

    语法:集合1.difference_update(集合2)

    功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。

    结果:集合1被修改,集合2不变

    6、两集合合并

    语法:集合1.union(集合2)

    功能:将集合1和集合2组成新集合。

    结果:得到新集合 集合、集合2不变 

    代码实操:

    1. """
    2. 演示数据容器集合的使用
    3. """
    4. # 定义集合 不重复、无序
    5. my_set = {"春天的熊","joker","blame",True,21,'blame'}
    6. my_set_empty = set()   # 定义空集合
    7. print(f"my_set的内容:{my_set},类型是:{type(my_set)}")
    8. print(f"my_set_empty的内容:{my_set_empty},类型是:{type(my_set_empty)}")
    9. # 添加新元素 add()
    10. my_set.add('jizz')
    11. my_set.add('joker') # 重复的不会添加
    12. print(f"添加元素后结果:{my_set}")
    13. # 移除元素 remove()
    14. my_set.remove(True)
    15. print(f"移除元素后结果:{my_set}")
    16. # 随机取出一个元素 pop()
    17. my_set = {"春天的熊","joker","blame",21}
    18. element = my_set.pop()
    19. print(f"随机取出的元素是:{element},取出后集合结果为{my_set}")
    20. # 情空集合 clear()
    21. my_set.clear()
    22. print(f"集合被清空了,结果是{my_set}")
    23. # 取两个集合的差集 集合1.difference(集合2) --取出集合1有而集合2没有的元素
    24. set1 = {1,2,3}
    25. set2 = {1,5,6}
    26. set3 = set1.difference(set2)
    27. print(f"set1={set1},set2={set2},取出差集后的结果:{set3}")
    28. # 消除2个集合差集 difference_update()
    29. set1 = {1,2,3}
    30. set2 = {1,5,6}
    31. set1.difference_update(set2)
    32. print(f"消除差集后:set1={set1},set2={set2}")
    33. # 2个集合合并为一个 union()
    34. set1 = {1,2,3}
    35. set2 = {1,5,6}
    36. set3 = set1.union(set2)
    37. print(f"set1={set1},set2={set2},合并后集后的结果:{set3}")
    38. # 统计集合元素数量 len()
    39. set1 = {1,2,3,'fu*k'}
    40. num = len(set1)
    41. print(f"{set1}中元素数量为:{num}")

    集合的遍历:集合不支持下标索引,不能用while循环。可以用for循环

    1. #集合的遍历 集合不支持下标索引,不能用while循环。可以用for循环
    2. set1 = {1,2,3,'fu*k'}
    3. for element in set1:
    4.     print(f"{set1}中的元素:{element}")

    集合练习:

    1. # 有如下列表对象:
    2. my_list = ['春天的熊','joker','bear','coding','python','sHSb','sHSb']
    3. # 定义一个空集合
    4. my_set = set()
    5. # 通过for循环遍历列表
    6. for element in my_list:
    7.     my_set.add(element)
    8. print(f"去重后集合对象:{my_set}")
    9. # 在for循环中将列表中的元素添加至集合
    10. # 最终得到去重后的集合额对象 打印输出

  • 相关阅读:
    Java一次返回中国所有省市区三级树形级联+前端vue展示【200ms内】
    【matplotlib基础】--结合地图
    UG\NX二次开发 一个分割曲线的工具
    内存取证入门第一题
    使用递归进行回溯
    Linux目录结构及文件基本操作
    javaee SpringMVC中json的使用
    Part 4.2 背包动态规划
    航天智信:严控航天系统研发安全,助力建设“航天强国”
    E. 矩阵第k大
  • 原文地址:https://blog.csdn.net/springbear/article/details/128077221