一、定义:

  

二、基本操作:

    

三、运算:

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

四、集合推导式:

    

五、固定集合 frozenset

    

六、基本代码:

  

  1. # 1. 创建空集合
  2. s01 = set()
  3. # 2. 创建具有默认值的集合
  4. s01 = {1,2,3,4}
  5. # print(type(s01))
  6. # 3. 其他容器 -->  集合
  7. s02 = set("abcdace")
  8. s02 = set([1,7,56,8,7,8])
  9. # 集合 --> 其他容器  
  10. l02 = list(s02)
  11. t02 = tuple(s02)
  12. # 4. 添加
  13. s02.add("a")
  14. s02.add("b")
  15. s02.add("c")
  16. print(s02)# {1, 7, 8, 'c', 'b', 56, 'a'}
  17.  
  18. # 5. 删除
  19. # s02.remove(7)
  20. # s02.remove(9) # 如果该元素不存在,则错误.
  21.  
  22. # if 9 in s02:
  23. # s02.remove(9)
  24.  
  25. s02.discard("a") # 如果该元素不存在,不会错误.
  26. print(s02)
  27.  
  28. # 6. 获取所有元素
  29. for item in s02:
  30. print(item)
  31.  
  32. # 7. 计算
  33. s03 = {1,2,3}
  34. s04 = {2,3,4}
  35.  
  36. # 交集
  37. s05 = s03 & s04
  38. print(s05)# {1, 2}
  39.  
  40. # 并集
  41. s05 = s03 | s04
  42. print(s05) # {1, 2, 3, 4}
  43.  
  44. # 补集
  45. s05 = s03 ^ s04
  46. print(s05) # {1, 4}
  47.  
  48. s05 = s03 - s04
  49. print(s05) # {1}
  50.  
  51. s05 = s04 - s03
  52. print(s05) # {4}
  53.  
  54. # 子集 超集
  55. s06 = {1,2,3}
  56. s07 = {1,2}
  57. re = s07 < s06 # True 说明s07 是  s06 的子集
  58. re = s06 > s07 # True 说明s06 是  s07 的超集
  59. print(re)
  60.  
  61. # 相同  不同
  62. s08 = {1,2,3}
  63. s09 = {1,2,3}
  64. re = s08 != s09 # True 说明s08 与  s09 相同
  65. print(re)

  

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

七、实例:

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

    

  1. set_target = set()
  2. while True:
  3. str_input = input("请随意输入:")
  4. if str_input == "q":
  5. break
  6. set_target.add(str_input)
  7.  
  8. for item in set_target:
  9. print(item)

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

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

    

  1. list01 = ["曹操","刘备","孙权"]
  2. list02 = ["曹操","刘备","张飞","关羽"]
  3.  
  4. set01 = frozenset(list01)
  5. set02 = frozenset(list02)
  6. #1. 即是经理也是技术员的有谁?
  7. print(set01 & set02)
  8.  
  9. #2. 是经理,但不是技术员的有谁?
  10. print(set01 - set02)
  11.  
  12. #3. 是技术员,但不是经理的有谁?
  13. print(set02 - set01)
  14.  
  15. #4. 张飞是经理吗?
  16. print("张飞" in set01)
  17.  
  18. #5. 身兼一职的都有谁?
  19. print(set02 ^ set01)
  20.  
  21. #6. 经理和技术员总共有多少人?
  22. print(len(set02 | set01))

    

Python基础之集合的更多相关文章

  1. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  2. Python基础(三)——集合、有序 无序列表、函数、文件操作

    1.Set集合 class set(object): """ set() -> new empty set object set(iterable) -> n ...

  3. python 基础 set 集合类型补充

    为啥今天又重提这个数据类型呢?平时用的少,等要用起来的时候才发现,自己对这块啥都不知道了,so,今天就把这块再梳理一下咯. 一.set集合,是一个无序且不重复的元素集合.这一点是非常重要的. 二.集合 ...

  4. python基础08_set集合

    关于前几次课的回顾: #!/usr/bin/env python # coding:utf-8 ## 字符串 数字 列表 元组 字典 ## 可变:列表 字典 ## 不可变:字符串, 数字, 元组 na ...

  5. python基础七--集合

    12.221.昨日内容回顾 小数据池: int:-5--256 str:1.不能有特殊字符 2.*int不能超过20 编码:所能看到的最小构成单位叫字符 ascii : 8位 1字节 表示1个字符 u ...

  6. Python基础入门-集合

    今天给大家分享的是python中集合(set)的概念,集合这个词其实和高中学的数学集合的概念很相近,或者作为初学者你就可以把它理解为数学当中的集合.在python中集合(set)是由一个个键组成的,但 ...

  7. python基础——数字&集合&布尔类型

    Python的核心数据类型 内置对象 对象类型 例子 数字 123,3.1415,3+4j,Decimal(小数),Fraction(分数) 字符串 'dodo',"guido's" ...

  8. Python基础-set集合操作

    set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...

  9. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  10. Python基础操作-集合

    在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...

随机推荐

  1. [物理学与PDEs]第2章习题12 严格凸性的转换

    设 $L=L(\xi_0,\xi_1,\cdots,\xi_n)$ 关于变量 $\xi_0>0,\xi_1,\cdots,\xi_n$ 为严格凸的. 证明函数 $$\bex M=\cfrac{1 ...

  2. 自定义border 为 dashed 时的虚线间距

    li{ width: 100%; height: 3px; background-image: linear-gradient(to right, #009a61 0%, #009a61 50%, t ...

  3. Linux中执行C++程序

    参考:https://blog.csdn.net/qq_31125955/article/details/79343498 https://blog.csdn.net/weixin_35477207/ ...

  4. Windows 下 exe 服务注册到 service 服务中

    window 下注册 exe 程序.添加到 服务中. window 注册服务方式 一. regsvr 方式 直接在 程序目录执行: Regsvr 32 命令是Windows中控件文件 ( 如扩展名为D ...

  5. centos7 下 nfs 搭建总结

    nfs一般用于生产环境磁盘空间不足导致数据无法写入,从而通过异机远程挂载磁盘方式解决问题. 一. rpm -qa | grep nfs-utils rpm -qa | grep rpcbind 二. ...

  6. day 15 - 2 内置函数练习

    内置函数练习 编写 sql 查询语句功能 文件内容: 1,Eva,22,13651054608,IT2,Vera,23,13304320533,Tearcher3,Renault,25,1333235 ...

  7. 208道面试题(JVM部分暂无答案)

    这是从网上看到的一套java面试题, 答案只是一个大概, 另外题目质量参差不齐, 斟酌参考(JVM的部分暂时没有答案) 一.Java 基础 JDK 和 JRE 有什么区别? 答: JDK(Java D ...

  8. C++设计模式——原型模式

    什么是原型模式? 在GOF的<设计模式:可复用面向对象软件的基础>中是这样说的:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.这这个定义中,最重要的一个词是“拷贝”,也就 ...

  9. mysql慢日志, 锁表情况查询

    2018-5-29 9:10:15 星期二 锁表情况查询: show OPEN TABLES where In_use > ; 慢日志记录: 1. 修改配置文件, 重启服务后永久生效 slow_ ...

  10. Android的路接下来该怎么走?

    其实想写这篇文章好久了,很多小伙伴们也经常在群里探讨android移动开发者的走向,一部分人都想多快好省,间歇性踌躇满志.持续性混吃等死 ,只想用CV的开发模式们快速完成工作,然后回家王者农药.其实这 ...