zoukankan      html  css  js  c++  java
  • Python基础之集合

    一、定义:

      

    二、基本操作:

        

    三、运算:

        交集&, 并集|, 补集-, 对称补集^, 子集<   超集>

    四、集合推导式:

        

    五、固定集合 frozenset

        

    六、基本代码:

      

    # 1. 创建空集合
    s01 = set()
    # 2. 创建具有默认值的集合
    s01 = {1,2,3,4}
    # print(type(s01))
    # 3. 其他容器 -->  集合
    s02 = set("abcdace")
    s02 = set([1,7,56,8,7,8])
    #    集合 --> 其他容器  
    l02 = list(s02)
    t02 = tuple(s02)
    # 4. 添加
    s02.add("a")
    s02.add("b")
    s02.add("c")
    print(s02)# {1, 7, 8, 'c', 'b', 56, 'a'}
    
    # 5. 删除
    # s02.remove(7)
    # s02.remove(9) # 如果该元素不存在,则错误.
    
    # if 9 in s02:
    #     s02.remove(9)
    
    s02.discard("a") # 如果该元素不存在,不会错误.
    print(s02)
    
    # 6. 获取所有元素
    for item in s02:
        print(item)
    
    # 7. 计算
    s03 = {1,2,3}
    s04 = {2,3,4}
    
    # 交集
    s05 = s03 & s04
    print(s05)# {1, 2}
    
    # 并集
    s05 = s03 | s04
    print(s05) # {1, 2, 3, 4}
    
    # 补集
    s05 = s03 ^ s04
    print(s05) # {1, 4}
    
    s05 = s03 - s04
    print(s05) #  {1}
    
    s05 = s04 - s03
    print(s05) #  {4}
    
    # 子集  超集
    s06 = {1,2,3}
    s07 = {1,2}
    re = s07 <  s06  # True  说明s07 是  s06 的子集
    re = s06 >  s07  # True  说明s06 是  s07 的超集
    print(re)
    
    # 相同  不同
    s08 = {1,2,3}
    s09 = {1,2,3}
    re = s08 != s09  # True 说明s08 与  s09 相同
    print(re)

      

    """
        固定集合
    """
    f01 = frozenset([1,2,2,4])
    print(type(f01))
    print(f01)

    七、实例:

      1、练习1:在控制台中随意录入多个字符串.按q退出,再显示所有不重复的字符串

        

    set_target = set()
    while True:
        str_input = input("请随意输入:")
        if str_input == "q":
            break
        set_target.add(str_input)
    
    for item in set_target:
        print(item)

      2、练习2:经理:[曹操,刘备,孙权]  技术员:[曹操,刘备,张飞,关羽]

        1. 即是经理也是技术员的有谁?
        2. 是经理,但不是技术员的有谁?
        3. 是技术员,但不是经理的有谁?
        4. 张飞是经理吗?
        5. 身兼一职的都有谁?
        6. 经理和技术员总共有多少人?

        

    list01 = ["曹操","刘备","孙权"]
    list02 = ["曹操","刘备","张飞","关羽"]
    
    set01 = frozenset(list01)
    set02 = frozenset(list02)
    #1. 即是经理也是技术员的有谁?
    print(set01  &  set02)
    
    #2. 是经理,但不是技术员的有谁?
    print(set01  - set02)
    
    #3. 是技术员,但不是经理的有谁?
    print(set02  - set01)
    
    #4. 张飞是经理吗?
    print("张飞" in set01)
    
    #5. 身兼一职的都有谁?
    print(set02  ^ set01)
    
    #6. 经理和技术员总共有多少人?
    print(len(set02  | set01))

        

  • 相关阅读:
    vs项目属性中的包含目录和库目录以及附加依赖项全都配置正确了,却还是提示:无法解析的外部符号
    开发六年mybatisplus使用小结
    去“BAT”这样面试,拿到offer的几率是80%
    阿里P7级教你如何在Spring Boot应用程序中使用Redis
    为什么Java大数据能带你走上人生巅峰
    惊呆!Java程序员等级一览
    不要做一个只会面向搜索编程的程序员
    三年总结出来的11个JPA和Hibernate查询配置小技巧
    阿里高级架构师教你使用Spring JMS处理消息事务源码案例
    阿里高级架构师教你使用Spring Cloud Sleuth跟踪微服务
  • 原文地址:https://www.cnblogs.com/yuxiangyang/p/10676194.html
Copyright © 2011-2022 走看看