当前位置: 首页 > news >正文

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))

 

    

转载于:https://www.cnblogs.com/yuxiangyang/p/10676194.html

相关文章:

  • vue父组件给子组件传值:属性的形式
  • Vue项目通过JSSDK调用微信分享接口
  • Linux启动/停止/重启Mysql数据库的方法
  • 基于注解的AOP配置
  • python-day2-变量
  • 同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别
  • 生产巡检
  • Android 内存监测工具 DDMS
  • Go语言介绍
  • 多态的应用-例子
  • Redis实战 - 3.Hash
  • session的使用
  • C++ string使用
  • 外连接查询
  • C#中三层架构UI、BLL、DAL、Model实际操作
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Angular 响应式表单之下拉框
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java程序员幽默爆笑锦集
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • nfs客户端进程变D,延伸linux的lock
  • Twitter赢在开放,三年创造奇迹
  • 基于 Babel 的 npm 包最小化设置
  • 我与Jetbrains的这些年
  • 一些关于Rust在2019年的思考
  • $L^p$ 调和函数恒为零
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (简单) HDU 2612 Find a way,BFS。
  • (五)Python 垃圾回收机制
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)nsfocus-绿盟科技笔试题目
  • (转)创业家杂志:UCWEB天使第一步
  • (转)关于pipe()的详细解析
  • (转)关于多人操作数据的处理策略
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Core引入性能分析引导优化
  • .net framework profiles /.net framework 配置
  • .net MySql
  • .Net 知识杂记
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET正则基础之——正则委托
  • .NET中的十进制浮点类型,徐汇区网站设计
  • // an array of int
  • @31省区市高考时间表来了,祝考试成功
  • @property括号内属性讲解
  • []error LNK2001: unresolved external symbol _m
  • [20150707]外部表与rowid.txt
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [ANT] 项目中应用ANT
  • [HDU]2161Primes