• python--数据容器--set(集合)


    目录

    集合的定义

     集合的常用操作---修改

    移除元素

    从集合中随机取出元素

    清空集合

    取2个集合的差集

    两个集合合并        

    for循环


    为什么学习集合

    因为之前学的列表、元组、字符串都支持重复 且有序

    如果场景需要进行去重处理 那就不方便了

    集合的定义

    基本语法:

    1. # 定义集合字面量
    2. {元素,元素,....,元素}
    3. # 定义集合变量
    4. 变量名称 = {元素,元素,....,元素}
    5. # 定义空集合
    6. 变量名称 = set()

     集合的常用操作---修改

    首先因为集合是无序的,所以集合不支持:下标索引访问

    但是集合和列表一样是允许修改的

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

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

    移除元素

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

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

    从集合中随机取出元素

    语法:集合.pop() 功能 从集合中随机取出一个元素

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

    清空集合

    语法:集合.clear()功能 清空集合

    结果 集合本身 被清空

    取2个集合的差集

    语法:集合1.difference(集合2) , 功能:取出集合1 和集合2 的差集 (集合1有而集合2没有的)

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

    消除2个集合的差集

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

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

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

    两个集合合并        

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

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

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

    for循环

    1. """
    2. 演示数据容器集合的使用
    3. """
    4. # 定义集合
    5. my_set = {"it", "python", "it", "python", "it", "python", "it", "python", "it", "python"}
    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. # 添加新元素
    10. my_set.add("111")
    11. print(f"my_set添加元素后的结果是:{my_set}")
    12. # 移除元素
    13. my_set.remove("it")
    14. print(f"my_set移除元素后的结果是:{my_set}")
    15. # 随机取出一个元素
    16. my_set = {"it", "python", "it", "python", "it", "python", "it", "python", "it", "python"}
    17. element = my_set.pop()
    18. print(f"集合被取出的元素是{element},取出后的集合是{my_set}")
    19. # 清空集合 ,clear
    20. my_set.clear()
    21. print(f"集合被清空啦,结果是:{my_set}")
    22. # 取2个集合的差集
    23. set1 = {1,2,3}
    24. set2 = {1,5,6}
    25. set3 = set1.difference(set2)
    26. print(f"取出差集后的结果是:{set3}")
    27. print(f"取出差集后set1结果是:{set1}")
    28. print(f"取出差集后的set2结果是:{set2}")
    29. # 消除两个集合的差集
    30. print("---消除两个集合的差集---")
    31. set1 = {1,2,3}
    32. set2 = {1,5,6}
    33. set1.difference_update(set2)
    34. print(set1)
    35. print(set2)
    36. # 2个集合合并为1个
    37. set1 = {1,2,3}
    38. set2 = {1,5,6}
    39. set3 = set1.union(set2)
    40. print(f"2集合合并结果:{set3}")
    41. print(f"合并后集合1:{set1 }")
    42. print(f"合并后集合2:{set2 }")
    43. print(f"合并后集合3:{set3 }")
    44. # 统计集合元素数量 len()
    45. set1 = {1,2,3,4,5}
    46. num = len(set1)
    47. print(f"集合内的元素数量有:{num}个")
    48. # 集合的遍历
    49. #集合不支持下标索引 不能用while循环
    50. #可以用for循环
    51. set1 = {1,2,3,4,5}
    52. for element in set1:
    53. print(f"集合的元素有;{element}")
    1. my_set的内容是:{'python', 'it'},类型是:<class 'set'>
    2. my_set_empty的内容是:set(),类型是:<class 'set'>
    3. my_set添加元素后的结果是:{'python', '111', 'it'}
    4. my_set移除元素后的结果是:{'python', '111'}
    5. 集合被取出的元素是python,取出后的集合是{'it'}
    6. 集合被清空啦,结果是:set()
    7. 取出差集后的结果是:{2, 3}
    8. 取出差集后set1结果是:{1, 2, 3}
    9. 取出差集后的set2结果是:{1, 5, 6}
    10. ---消除两个集合的差集---
    11. {2, 3}
    12. {1, 5, 6}
    13. 2集合合并结果:{1, 2, 3, 5, 6}
    14. 合并后集合1:{1, 2, 3}
    15. 合并后集合2:{1, 5, 6}
    16. 合并后集合3:{1, 2, 3, 5, 6}
    17. 集合内的元素数量有:5
    18. 集合的元素有;1
    19. 集合的元素有;2
    20. 集合的元素有;3
    21. 集合的元素有;4
    22. 集合的元素有;5
    23. Process finished with exit code 0

  • 相关阅读:
    经验篇:大数据常用工具集合
    Nginx制作下载站点
    Flutter笔记:发布一个多功能轮播组件 awesome_carousel
    3、【第一步】Qlib初始化
    Dijkstra算法不能解决负权边的问题
    一、MRP计算前的一些准备知识
    chromedriver,Chrome驱动的实时更新
    洛谷P1779 魔鬼杀手
    Maven进阶-多环境开发与跳过测试
    一套SCDM脚本建模与二次开发攻略
  • 原文地址:https://blog.csdn.net/baidu_41651554/article/details/126923928