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

            

  • 相关阅读:
    vue3自定义指令批量注册
    Pytorch深度学习——循环神经网络基础 (07)
    基于SpringBoot的桂林旅游景点导游平台
    HTML-Demo:工商银行电子汇款单
    如何成为一个优秀的程序员?
    科技云报道:两会热议的数据要素,如何拥抱新技术?
    jbase代码生成器(成型篇)
    数学建模【因子分析】
    基于UE4 的AirSim虚拟仿真
    C语言结构体(struct)一些常见问题 ⎛⎝≥⏝⏝≤⎛⎝
  • 原文地址:https://blog.csdn.net/bingersoft/article/details/133458093