集合(set)是一个无序不重复元素的序列。

它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

  1. parame = {value01,value02,...}
  2. 或者
  3. set(value)

例:

  1. #!/usr/bin/python3
  2.  
  3. student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
  4.  
  5. print(student) # 输出集合,重复的元素被自动去掉
  6.  
  7. # 成员测试
  8. if('Rose' in student) :
  9. print('Rose 在集合中')
  10. else :
  11. print('Rose 不在集合中')
  12.  
  13. # set可以进行集合运算
  14. a = set('abracadabra')
  15. b = set('alacazam')
  16.  
  17. print(a)
  18.  
  19. print(a - b) # a和b的差集
  20.  
  21. print(a | b) # a和b的并集
  22.  
  23. print(a & b) # a和b的交集
  24.  
  25. print(a ^ b) # a和b中不同时存在的元素

以上实例输出结果:

  1. {'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}
  2. Rose 在集合中
  3. {'b', 'a', 'c', 'r', 'd'}
  4. {'b', 'd', 'r'}
  5. {'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
  6. {'a', 'c'}
  7. {'l', 'r', 'z', 'm', 'b', 'd'}

常用操作:

  1. s = set([3,5,9,10]) #创建一个数值集合
  2.  
  3. t = set("Hello") #创建一个唯一字符的集合
  4.  
  5. a = t | s # t 和 s的并集
  6.  
  7. b = t & s # t 和 s的交集
  8.  
  9. c = t s # 求差集(项在t中,但不在s中)
  10.  
  11. d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
  12.  
  13. 基本操作:
  14.  
  15. t.add('x') # 添加一项
  16.  
  17. s.update([10,37,42]) # 在s中添加多项
  18.  
  19. 使用remove()可以删除一项:
  20.  
  21. t.remove('H')
  22.  
  23. len(s)
  24. set 的长度
  25.  
  26. x in s
  27. 测试 x 是否是 s 的成员
  28.  
  29. x not in s
  30. 测试 x 是否不是 s 的成员
  31.  
  32. s.issubset(t)
  33. s <= t
  34. 测试是否 s 中的每一个元素都在 t
  35.  
  36. s.issuperset(t)
  37. s >= t
  38. 测试是否 t 中的每一个元素都在 s
  39.  
  40. s.union(t)
  41. s | t
  42. 返回一个新的 set 包含 s t 中的每一个元素
  43.  
  44. s.intersection(t)
  45. s & t
  46. 返回一个新的 set 包含 s t 中的公共元素
  47.  
  48. s.difference(t)
  49. s - t
  50. 返回一个新的 set 包含 s 中有但是 t 中没有的元素
  51.  
  52. s.symmetric_difference(t)
  53. s ^ t
  54. 返回一个新的 set 包含 s t 中不重复的元素
  55.  
  56. s.copy()
  57. 返回 set s”的一个浅复制

Python3 集合(set)(十五)的更多相关文章

  1. 从零开始学习PYTHON3讲义(十五)让画面动起来

    <从零开始PYTHON3>第十五讲 虽然看起来绘图和音乐并不相关,但是听过了上一讲的内容你一定知道,这是游戏编程中四个需要处理内容的两部分,这两部分必须同时.并行的处理,不能因为某一项计算 ...

  2. python3(三十五)file read write

    """ 文件读写 """ __author__on__ = 'shaozhiqi 2019/9/23' # !/usr/bin/env py ...

  3. python3(二十五) getClassInfo

    """ """ __author__ = 'shaozhiqi' # 如何知道这个对象是什么类型,使用type() print(type(1 ...

  4. java 集合框架(十五)Deque

    一.概述 Deque是Queue的子接口,我们知道Queue是一种队列形式,而Deque则是双向队列,它支持从两个端点方向检索和插入元素,因此Deque既可以支持LIFO形式也可以支持LIFO形式.D ...

  5. Python3学习笔记十五

    ---恢复内容开始--- 1.  jquery的属性操作  $().attr(属性名)    取值 $().attr(属性名,属性值)      赋值 <!DOCTYPE html> &l ...

  6. Java之集合(二十五)ConcurrentHashMap

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7520808.html 1.前言 本章介绍使用的最频繁的并发集合类之一ConcurrentHashMap,之前介绍 ...

  7. Python3爬虫(十五) 代理

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.设置代理 1.urllib #HTTP代理类型 from urllib.error import URLErr ...

  8. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  9. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  10. Java中的集合(十五) Iterator 和 ListIterator、Enumeration

    Java中的集合(十五) Iterator 和 ListIterator.Enumeration 一.Iterator (一).简介 Iterator 是一个接口,它是集合的迭代器.集合可以通过Ite ...

随机推荐

  1. centos7下yum升级被PackageKit锁定

    新安装centos7后,第一次升级出现下面的错误: Another app is currently holding the yum lock; waiting for it to exit... 另 ...

  2. v-pre原样输出&&v-once只加载一次

    html <div id="app"> <div v-pre>{{message1}}</div><!--原样输出--> <b ...

  3. Future Works on P4

    Future Works on P4 P4 and NV: MPvisor, Hyper4, HyperV, Flex4 P4 and NFV P4 and Network Cache P4 and ...

  4. ros 安装c++编译的可执行文件

    xxx为c++源文件名 install( TARGETS xxx ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTI ...

  5. shell while 语句

    普通循环格式: while condition do command done 例子一 #!/bin/bash )) do echo $int let "int++" done 结 ...

  6. Could not find a package configuration file provided by 'ecl_geometry' ,.................couldn't find required component 'ecl_geometry'

    sudo apt-get install ros-kinetic-ecl-geometry

  7. TypeScript基础学习

    什么是TypeScript? TypeScript是一种由微软开发的自由的和开源的编程语言,它是JavaScript的一个超集,扩展了JavaScript的语法. TypeScript支持任意浏览器, ...

  8. ADO.NET 批量插入

    在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便.而 在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们 ...

  9. SQL Timeout超时的处理方法

    第一步:修改Web.config配置文件.在数据库连接字符串中加上连接时间Connect Timeout,根据实际情况定时间. <!--连接数据库--> <connectionStr ...

  10. bartender学习

    参考: 官网  https://www.seagullscientific.com/label-software/barcode-label-design-and-printing 文章 http:/ ...