• 闲话Python编程-集合set


            Python语言提供了集合类型set,set里存储的元素无序而不重复,这是它区别于list和tuple的地方。

    1. 创建

            有两种创建方式:{a, b, c}和set()函数。

            注意: 空集合set只能通过set()函数来创建,不能通过{}来创建,因为Python把{}当成空字典dictionary了。

    1. #!/usr/bin/env python3
    2. # -*- coding: utf-8 -*-
    3. # 练习set
    4. def create_set():
    5. s = set()
    6. print(s)
    7. s1 = {'aaa', 'bbb', 'cccc', 'cccc'}
    8. print(s1)
    9. s2 = set('abcabc')
    10. print(s2)
    11. def main():
    12. create_set()
    13. if __name__ == '__main__':
    14. main()

            执行结果:

    set()
    {'cccc', 'aaa', 'bbb'}
    {'c', 'b', 'a'}

            再执行一次:

    set()
    {'bbb', 'cccc', 'aaa'}
    {'a', 'b', 'c'} 

             从两次打印结果来看,我们很容易就看到了元素的无序性和不重复性。

    2. 操作

            直接写一段测试代码看它有哪些操作。

    1. #!/usr/bin/env python3
    2. # -*- coding: utf-8 -*-
    3. # 练习set
    4. def create_set():
    5. s = set()
    6. print(s)
    7. s1 = {'aaa', 'bbb', 'cccc', 'cccc'}
    8. print(s1)
    9. s2 = set('abcabc')
    10. print(s2)
    11. s3 = {x for x in 'abcqwe' if x not in 'abc'}
    12. print(s3)
    13. def operate_set():
    14. s1 = set('abcdefgabc')
    15. print('s1:', s1)
    16. print('s1 length: ', len(s1)) # 求长度
    17. if 'a' in s1:
    18. print('a is in ', s1)
    19. if 'x' not in s1:
    20. print('x is not in ', s1)
    21. s2 = set('abcxyz')
    22. print(s2)
    23. print(s1 - s2) # 在s1内,但不在s2内
    24. print(s1 | s2) # s1和s2合集
    25. print(s1 & s2) # s1和s2交集
    26. print(s1 ^ s2) # 不在两者里都出现的
    27. s3 = {1, 2, 3, 4, 5}
    28. s3.add(6) # 添加一个元素
    29. print('s3:', s3)
    30. s3.remove(2) # 删除指定的元素, 如果不存在会抛出异常
    31. print('s3:', s3)
    32. s3.discard(9) # 删除指定的元素, 如果不存在不会抛出异常
    33. print('s3:', s3)
    34. s3.pop() # 随机删除一个元素并返回这个元素值
    35. print('s3:', s3)
    36. s3.clear() # 清空整个set
    37. print('s3:', s3)
    38. def main():
    39. create_set()
    40. print('-------------------------------------------------')
    41. operate_set()
    42. if __name__ == '__main__':
    43. main()

    3. 结束语

             集合set没有列表list和字典dictionary使用的频繁,它适合使用在集合里元素不重复的情况下,每个数据结构有它最合适的使用场景,这促使我们在实际编程过程中根据实际问题来寻找恰当的数据结构。

            

  • 相关阅读:
    Spring——@Autowired注解以及与@Resource区别
    鲲鹏devkit & boostkit
    Vim简介
    Java控制台输入输出问题
    微型计算机原理2
    Rust入门(1)
    MyBatis-Plus 入门与实践
    Vue3 + Nodejs 实战 ,文件上传项目--实现拖拽上传
    JSP实现数据传递与保存(一)
    深入理解分库、分表、分库分表
  • 原文地址:https://blog.csdn.net/bingersoft/article/details/133458093