• day02.5-集合内置方法


    集合——set的定义:test = {1,2,3,4,5} 或 test = frozenset(1,2,3,4,5)

    特点:1. 集合是可变数据类型

          2. 集合中元素是无序的,可以是数字、字符串与元组等不可变数据类型

       3. 通过test = {1,2,3,4,5}方法定义的是可变集合;通过test = frozenset(1,2,3,4,5)方法定义的是不可变集合

    1. 将指定元素添加到集合中

    1 test = {1,2,3,4,5}
    2 test.add(8)
    3 print(test)
    4 
    5 """
    6 运行结果:{1, 2, 3, 4, 5, 8}
    7 结果分析:将元素8添加到集合test中
    8 """

    2. 拷贝集合中元素

    1 test = {1,2,3,4,5}
    2 v = test.copy()
    3 print(v)
    4 
    5 """
    6 运行结果:{1, 2, 3, 4, 5}
    7 结果分析:将集合test中所有元素拷贝并赋值给v
    8 """

    3. 删除集合中指定元素;当该元素不存在时,返回错误信息

    1 test = {1,2,3,4,5}
    2 test.remove(3)
    3 print(test)
    4 
    5 """
    6 运行结果:{1, 2, 4, 5}
    7 结果分析:删除集合test中值为3的元素
    8 """

    4. 删除集合中指定元素;当该元素不存在时,不做任何处理

     1 test = {1,2,3,4,5}
     2 test.discard(3)
     3 print(test)
     4 print("--"*20)
     5 
     6 test.discard(8)
     7 print(test)
     8 """
     9 运行结果:
    10     {1, 2, 4, 5}
    11     ----------------------------------------
    12     {1, 2, 4, 5}
    13 结果分析:
    14     删除集合中值为3的元素;
    15     由于集合中不存在值为8的元素,所以不做任何处理,集合中元素不变
    16 """

    5. 随机删除并返回集合中某一元素

     1 test = {1,2,3,4,5}
     2 v = test.pop()
     3 print(test)
     4 print(v)
     5 
     6 """
     7 运行结果:
     8     {2, 3, 4, 5}
     9     1
    10 结果分析:随机删除集合中某一元素,并将该元素值返回给变量v
    11 """

    6. 清空集合中元素

    1 test = {1,2,3,4,5}
    2 test.clear()
    3 print(test)
    4 
    5 """
    6 运行结果:set()
    7 结果分析:清空集合中所有元素,得到一个空白集合
    8 """

    7. 集合交运算

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,3,5,7,9}
    3 test = s1.intersection(s2)    #或test = s1 & s2
    4 print(test)
    5 
    6 """
    7 运行结果:{1, 3, 5}
    8 结果分析:计算集合s1和s2的交集
    9 """

    8. 集合并运算

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,3,5,7,9}
    3 test = s1.union(s2)    #或test = s1 | s2
    4 print(test)
    5 
    6 """
    7 运行结果:{1, 2, 3, 4, 5, 7, 9}
    8 结果分析:计算集合s1和s2的并集
    9 """

    9. 集合差运算

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,3,5,7,9}
    3 test = s1.difference(s2)    #或test = s1 - s2
    4 print(test)
    5 
    6 """
    7 运行结果:{2, 4}
    8 结果分析:计算集合s1和s2的差集
    9 """

    10. 集合交叉补集运算

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,3,5,7,9}
    3 test = s1.symmetric_difference(s2)    #或test = s1 ^ s2
    4 print(test)
    5 
    6 """
    7 运行结果:{2, 4, 7, 9}
    8 结果分析:计算集合s1和s2的交叉补集(相当于从两集合的并集中减去两集合交集)
    9 """

    11. 求集合交集,并将运算结果赋予源集合

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,3,5,7,9}
    3 s1.intersection_update(s2)
    4 print(s1,s2)
    5 
    6 """
    7 运行结果:{1, 3, 5} {1, 3, 5, 7, 9}
    8 结果分析:计算集合s1和s2的交集,并将运算结果赋予集合s1,集合s2保持不变
    9 """

    12. 求集合差集,并将运算结果赋予源集合

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,3,5,7,9}
    3 s1.difference_update(s2)
    4 print(s1,s2)
    5 
    6 """
    7 运行结果:{2, 4} {1, 3, 5, 7, 9}
    8 结果分析:计算集合s1和s2的差集,并将运算结果赋予集合s1,集合s2保持不变
    9 """

    13. 求集合交叉补集,并将运算结果赋予源集合

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,3,5,7,9}
    3 s1.symmetric_difference_update(s2)
    4 print(s1,s2)
    5 
    6 """
    7 运行结果:{2, 4, 7, 9} {1, 3, 5, 7, 9}
    8 结果分析:计算集合s1和s2的交叉补集,并将运算结果赋予集合s1,集合s2保持不变
    9 """

    14. 判断两集合是否存在交集

     1 s1 = {1,2,3,4,5}
     2 s2 = {1,3,5,7,9}
     3 print(s1.isdisjoint(s2))
     4 
     5 """
     6 运行结果:False
     7 结果分析:
     8     若两集合不存在交集或其交集为空,则返回True
     9     若两集合存在交集或其交集非空,则返回False
    10 """

    15. 判断两集合是否满足s1<=s2

    1 s1 = {1,2,3,4,5}
    2 s2 = {1,2,3,4,5,6,7,8,9}
    3 print(s1.issubset(s2))
    4 
    5 """
    6 运行结果:True
    7 结果分析:若两集合满足s1<=s2,即集合s1为s2的子集,则返回True;否则返回False
    8 """

    16. 判断两集合是否满足s1>=s2

    1 s1 = {1,2,3,4,5,6,7,8,9}
    2 s2 = {1,2,3,4,5}
    3 print(s1.issuperset(s2))
    4 
    5 """
    6 运行结果:True
    7 结果分析:若两集合满足s1>=s2,即集合s1为s2的"父"集,则返回True;否则返回False
    8 """

    17. 更新集合元素

    1 s1 = {1,2,3,4,5,6,7,8,9}
    2 s2 = {1,2,3,4,5}
    3 s2.update(s1)
    4 print(s2)
    5 
    6 """
    7 运行结果:{1, 2, 3, 4, 5, 6, 7, 8, 9}
    8 结果分析:将集合s1的各个元素更新到集合s2中,相当于s1=s2
    9 """
  • 相关阅读:
    Android官方数据绑定框架DataBinding*
    Application 使用分析*
    Android HandlerThread与IntentService*
    Android中SQLite应用详解*
    Android开发中,那些让您觉得相见恨晚的方法、类或接口*
    巧用ViewPager 打造不一样的广告轮播切换效果*
    Android-Universal-Image-Loader的缓存处理机制与使用 LruCache 缓存图片*
    Android Volley完全解析*
    Android 蓝牙*
    Android自定义View
  • 原文地址:https://www.cnblogs.com/zizaijiapu/p/10139070.html
Copyright © 2020-2023  润新知