• 闲话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使用的频繁,它适合使用在集合里元素不重复的情况下,每个数据结构有它最合适的使用场景,这促使我们在实际编程过程中根据实际问题来寻找恰当的数据结构。

            

  • 相关阅读:
    设计模式-装饰器模式
    前端面试如何回答,这些题目或许可以给你一些提示
    Xilinx FPGA 7系列 GTX/GTH Transceivers (4) Aurora 8b10b 递增数收发验证
    Python Parser 因子计算性能简单测试
    OpenStack学习笔记(二)
    【SpringCloud学习07】微服务保护之Sentinel(1)
    MFC按钮禁用实现
    SpringCloud复习:(1)netflix包里的DiscoveryClient类
    新课程发布 | 如何用 7 分钟击破 Serverless 落地难点?
    基于卷积神经网络的视频超分辨率
  • 原文地址:https://blog.csdn.net/bingersoft/article/details/133458093