Set的功能介绍

1.集合的两种函数(方法)

1. 集合的内置函数

  1. 交集

    格式:x.__and__(y)等同于x&y
    例如:s1 = {'a',1,}
    s2 = {'b',1,}
    s3 = {'b','d'}
    print(s1.__and__(s2))
    >>> {1}
    print(s1.__and__(s3))
    >>> set()
    返回值:set
    #y只能是集合,当两个集合没有交集时,返回值为空集合。
  2. 判断是否是包含关系

    格式:x.__contains__(y)等同于y in x
    例如:s1 = {'a',1,}
    print(s1.__contains__(3))
    >>> False
    返回值:bool
    #y可以是任意对象
  3. 判断两个集合是否相等

    格式:x.__eq__(y)等同于x==y
    例如:s1 = {'a',1,}
    print(s1.__eq__({3,}))
    >>> False
    返回值:bool
  4. 判断集合1是否大于等于集合2

    格式:x.__ge__(y)等同于x>=y
    例如:s1 = {3,4,5}
    print(s1.__ge__({3,4}))
    >>> True
    print(s1.__ge__({2}))
    >>> False
    返回值:bool
    #y只能是集合,判断大小主要依据集合相同元素的个数。
  5. 访问属性

    格式:x.__getattribute__(self,name)
    返回值:tuple
  6. 判断集合1是否大于集合2

    格式:x.__gt__(y)等同于x>y
    例如:s1 = {3,4,5}
    print(s1.__gt__({3,4}))
    >>> True
    print(s1.__gt__({2}))
    >>> False
    返回值:bool
    #y只能是集合,判断大小主要依据集合相同元素的个数。
  7. 赋值交集

    格式:x.__iand__(y)等同于x&=y
    例如:s1 = {'a',3,}
    s1.__iand__({3})
    print(s1)
    >>> {3}
    返回值:None
  8. 构造方法

    格式:x.__init__(set())
    例如:s1 = {3,5,}
    s1.__init__(set())
    print(s1)
    返回值:None
  9. 赋值或并集

    格式:x.__ior__(y)等同于x|=y
    例如:s1 = {'a','b',}
    s1.__ior__({3})
    print(s1)
    >>> {'a','b',3}
    返回值:None
  10. 赋值差集

    格式:x.__isub__(y)等同于x-=y
    例如:s1 = {'a','b',}
    s1.__isub__({3,4})
    print(s1)
    >>> {'a','b'}
    返回值:None
  11. 迭代器

    格式:x.__iter__()等同于iter(x)
    返回值:迭代器
  12. 赋值异或

    格式:x.__ixor__(y)等同于x^=y
    例如:s1 = {'a','b',2,}
    s1.__ixor__({'a',2,3})
    print(s1)
    >>> {'b',3}
    返回值:None
    #去除两个集合的交集后再并集
  13. 判断集合1是否小于等于集合2

    格式:x.__le__(y)等同于x<=y
    例如:s1 = {3,4,5}
    print(s1.__le__({3,4}))
    >>> False
    print(s1.__le__({2}))
    >>> True
    返回值:bool
    #y只能是集合,判断大小主要依据集合相同元素的个数。
  14. 长度

    格式:x.__len__()等同于len(x)
    例如:s1 = {2,3,4,}
    print(s1.__len__())
    >>> 3
    返回值:int
  15. 判断集合1是否小于集合2

    格式:x.__lt__(y)等同于x<y
    例如:s1 = {3,4,5}
    print(s1.__lt__({3,4}))
    >>> False
    print(s1.__lt__({2}))
    >>> True
    返回值:bool
    #y只能是集合,判断大小主要依据集合相同元素的个数。
  16. 判断两个集合是否不相等

    格式:x.__ne__(y)等同于x!=y
    例如:s1 = {2,3,4}
    print(s1.__ne__({3,4,}))
    >>> True
    返回值:bool
  17. 创建一个空集合

    格式:x.__new__(set)
    例如:s1 = {2,3,}
    print(s1.__new__(set))
    >>> set()
    返回值:set
  18. 并集

    格式:x.__or__(y)等同于x|y
    例如:s1 = {2,3,4}
    print(s1.__or__({3,4,5}))
    >>> {2,3,4,5}
    返回值:set
  19. 右→左 交集

    格式:x.__rand__(y)等同于y&x
    例如:s1 = {2,3,4}
    print(s1.__rand__({3,4,5}))
    >>> {3,4}
    返回值:set
  20. 集合的状态信息

    格式:x.__reduce__()
    例如:s1 = {3,4,5,}
    print(s1.__reduce__())
    >>> (<class 'set'>, ([3, 4, 5],), None)
    返回值:tuple
  21. 内置转换

    格式:x.__repr__(self)
    返回值:set
  22. 右→左 并集

    格式:x.__ror__(y)等同于y|x
    例如:s1 = {2,3,4}
    print(s1.__ror__({3,4,5}))
    >>> {2,3,4,5}
    返回值:set
  23. 右→左 差集

    格式:x.__rsub__(y)等同于y-x
    例如:s1 = {2,3,4,}
    print(s1.__rsub__({3,4,5}))
    >>> {5}
    返回值:set
  24. 右→左 并集减去交集

    格式:x.__rxor__(y)等同于y^x
    例如:s1 = {2,3,4,}
    print(s1.__rxor__({3,4,5}))
    >>> {2,5}
    返回值:set
  25. 集合在内存中的大小,转换为字节进行计算

    格式:x.__sizeof__()
    例如:s1 = {3,4,}
    s2 = {2,3,}
    print(s1.__sizeof__())
    >>> 200
    print(s2.__sizeof__())
    >>> 200
    返回值:int
    #集合长度和内容的不同,不影响集合在内存中的大小。
  26. 差集

    格式:x.__sub__(y)等同于x-y
    例如:s1 = {2,3,4,}
    print(s1.__sub__({3,4,5}))
    >>> {2}
    返回值:set
  27. 并集减去交集

    格式:x.__xor__(y)等同于x^y
    例如:s1 = {2,3,4,}
    print(s1.__xor__({3,4,5}))
    >>> {2,5}
    返回值:set

2. 集合的常用函数

  1. 集合添加元素

    格式:x.add(y)
    例如:s1 = {2,4,}
    s1.add(3)
    print(s1)
    >>> {2,3,4}
    返回值:None
    #y是任意可以哈希的对象
  2. 清空集合

    格式:x.clear()
    例如:s1 = {2,3,}
    s1.clear()
    print(s1)
    >>> set()
    返回值:None
  3. 复制集合

    格式:x.copy()
    例如:s1 = {2,3,}
    print(s1.copy())
    >>> {2,3}
    返回值:set
  4. 差集(生成新集合)

    格式:x.difference(y)等同于x-y
    例如:s1 = {1,2,3,}
    print(s1.difference({2,3,4,}))
    >>> {1}
    返回值:set
  5. 差集(修改原集合)

    格式:x.difference_update(y)
    例如:s1 = {1,2,3,}
    s1.difference_update({2,3,4,})
    print(s1)
    >>> {1}
    返回值:None
  6. 删除元素(不报错)

    格式:x.discard(y)
    例如:s1 = {1,2,3,}
    s1.discard(3)
    print(s1)
    >>> {1,2}
    返回值:None
    #y是任意可哈希化的对象,集合若无该元素时,也不会报错
  7. 交集(生成新集合)

    格式:x.intersection(y)等同于x&y
    例如:s1 = {1,2,3,}
    print(s1.intersection({2,3,4}))
    >>> {2,3}
    返回值:set
  8. 交集(修改原集合)

    格式:x.intersection_update(y)
    例如:s1 = {1,2,3,}
    s1.intersection_update({2,3,4,})
    print(s1)
    >>> {2,3}
    返回值:None
  9. 判断两个集合是否没有相同元素

    格式:x.isdisjoint(y)
    例如:s1 = {1,2,3,}
    print(s1.isdisjoint({4,5,}))
    >>> True
    返回值:bool
  10. 判断集合1是否包含集合2

    格式:x.issuperset(y)
    例如:s1 = {1,2,3,}
    print(s1.issuperset({1,2,}))
    >>> True
    返回值:bool
  11. 随机删除一个元素

    格式:x.pop()
    例如:s1 = {1,2,3,}
    print(s1.pop())
    >>> 1 or 2 or 3
    返回值:object(可哈希化的对象)
  12. 删除指定元素

    格式:x.remove(y)
    例如:s1 = {1,2,3,}
    s1.remove(2)
    print(s1)
    >>> {1,3}
    返回值:None
  13. 并集减去交集(生成新集合)

    格式:x.symmetric_difference(y)等同于x^y
    例如:s1 = {1,2,3,}
    print(s1.symmetric_difference({2,3,4,}))
    >>> {1,4}
    返回值:set
  14. 并集减去交集(修改原集合)

    格式:x.symmetric_difference_update(y)
    例如:s1 = {1,2,3,}
    s1.symmetric_difference_update({2,3,4,})
    print(s1)
    >>> {1,4}
    返回值:None
  15. 并集(生成新集合)

    格式:x.union(y)等同于x|y
    例如:s1 = {1,2,3,}
    print(s1.union([4,5,]))
    >>> {1,2,3,4,5}
    返回值:set
    #y是可迭代的对象,主要为列表,元祖,字典和集合。
  16. 并集(修改原集合)

    格式:x.update(y)
    例如:s1 = {1,2,3,}
    s1.update((4,5,))
    print(s1)
    >>> {1,2,3,4,5}
    返回值:None
    #y是可迭代的对象,主要为列表,元祖,字典和集合。

2.集合的操作

1. 集合的基础操作

  1. 长度

    格式:len(set)
    返回值:int
  2. 转换为集合

    格式:set(object)
    返回值:set
    #object只能是可哈希的对象

2. 集合遍历操作

  1. 使用for...in 遍历集合

    格式:for variable in set:
    使用variable
    例如:se1 = {1,'a','b',}
    for i in se1:
    print(i)
    >>> 1
    >>> 'a'
    >>> 'b'
  2. 集合内等长元祖的遍历

    格式:for variable1,variable2 in set:
    使用variable1,variable2
    例如:se1 = {(1,3,),(4,6,),(7,9,),}
    for i,j in se1:
    print(i,j)
    >>> 1 3
    >>> 4 6
    >>> 7 9

    注:方法2只能遍历同等长度的二级集合,由于集合内的元素不能是列表、字典和集合,因此只能是元祖。

3. 集合的推导式

  1. 简单的集合推导式

    格式:{variable for variable in set}
    例如:se1 = {1,'a','b',}
    print({i for in se1})
    >>> {1,'a','b',}
    返回值:set
    #遍历集合生成一个新集合
  2. 稍作修改的集合推导式

    格式:{variable*3 for variable in set}
    例如:se1 = {1,'a','b',}
    print({i*3 for i in se1})
    >>> {3,'aaa','bbb'}
    返回值:set
  3. 带判断的集合推导式

    格式:{variable+'x' for variable in set if 条件表达式}
    例如:se1 = {1,'a','b',}
    print({i+'x' for i in se1 if i != 1})
    >>> {'ax','bx'}
    返回值:set
  4. 多个集合推导式

    格式:{variable1+variable2 for variable1 in se1 for variable2 in se2}
    例如:se1 = {'a','b',}
    se2 = {'c','d',}
    print({i+j for i in se1 for j in se2})
    >>> {'bc', 'ad', 'ac', 'bd'}
    返回值:set
  5. 带判断的多个集合推导式

    格式:{variable1+variable2 for variable1 in se1 for variable2 in se2 if 条件表达式}
    例如:se1 = {'a','b','c'}
    se2 = {'a','d','e'}
    print({i+j for i in se1 for j in se2 if i == j})
    >>> {'aa'}
    返回值:set

Python中set的功能介绍的更多相关文章

  1. Python中dict的功能介绍

    Dict的功能介绍 1. 字典的两种函数(方法) 1. 字典的内置函数 包含关系 格式:x.__contains__(key)等同于key in x 例如:dic = {'ab':23,'cd':34 ...

  2. Python中tuple的功能介绍

    Tuple的功能介绍 1. 元祖的两种方法 1. 元祖的内置方法 两个元祖的相加 格式:x.__add__(y)等同于x+y 例如:tu1 = (1,2,3,) print(tu1.__add__(( ...

  3. Python中list的功能介绍

    List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([ ...

  4. python中multiprocessing.pool函数介绍_正在拉磨_新浪博客

    python中multiprocessing.pool函数介绍_正在拉磨_新浪博客     python中multiprocessing.pool函数介绍    (2010-06-10 03:46:5 ...

  5. laravel框架中超实用的功能介绍

    本篇文章给大家带来的内容是关于laravel框架中超实用的功能介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 让lumen的dd() dump()像laravel一样优雅 1 c ...

  6. Docker 中的网络功能介绍 外部访问容器 容器互联 配置 DNS

    Docker 中的网络功能介绍 | Docker 从入门到实践 https://vuepress.mirror.docker-practice.com/network/ Docker 允许通过外部访问 ...

  7. python中int的功能简单介绍

    Int的功能介绍 1. 绝对值 x.__abs__()等同于abs(x) 2. 加法 x.__add__(y)等同于x+y 3. 与运算 x.__and__(y)等同于x&y 4. 布尔运算 ...

  8. [转载]python中multiprocessing.pool函数介绍

    原文地址:http://blog.sina.com.cn/s/blog_5fa432b40101kwpi.html 作者:龙峰 摘自:http://hi.baidu.com/xjtukanif/blo ...

  9. Python中关于函数的介绍

    一.什么是函数       当我们在日常工作中编写代码时,有没有发现这种情况,写了一套代码,却发现里面有很多段代码出现了有规律的重复,这样就不符合一个合格程序员的标准了,一个合格的程序员编写的代码最重 ...

随机推荐

  1. 《javascript设计模式与开发实践》阅读笔记(13)—— 职责链模式

    职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 书里的订单的例子 假设我们负责一个售卖手机 ...

  2. redis入门(05)redis的key命令

    一.什么是redis键命令 Redis 键(key):Redis 键命令用于管理 redis 的键. Redis 键命令的基本语法: redis 127.0.0.1:6379> COMMAND ...

  3. IDE-Ecplise-代码注释 模版 编码规范 配色

    说明: 代码注释主要用于方便代码后期维护,编码规范,增加代码阅读性和维护性.因网上看到的很多博客中片段局多,故整理后重写一篇,方便交流学习. 先看下加过注释模版后的效果. 如上图所示,创建类,方法和继 ...

  4. JS for循环小题2

    ********** for(var a = 1; a<=4;a++){ //外循环定义循环4次,4行 for(var i= 1;i<=a;i++){ //内循环控制*的打印次数,循环一次 ...

  5. css3中的动画 @keyframes animation

    动画的运用比较重要.接下来我希望针对我自己学习遇到的问题,再总结一下这个属性的使用方法. 创建一个动画: @keyframes 动画名 {样式} 引用自己创建的动画: animation:动画名  时 ...

  6. 27.C++- 智能指针

    智能指针 在C++库中最重要的类模板之一 智能指针实际上是将指针封装在一个类里,通过对象来管理指针. STL中的智能指针auto_ptr 头文件: <memory> 生命周期结束时,自动摧 ...

  7. SourceTree 03 - 跳过账号登录直接进入主界面

    SourceTree系列第1篇 SourceTree 01 - git 客户端介绍(http://www.cnblogs.com/geaosu/p/8807666.html) SourceTree系列 ...

  8. POJ-1182 食物链---并查集(附模板)

    题目链接: https://vjudge.net/problem/POJ-1182 题目大意: 中文题,不多说. 思路: 给每个动物创建3个元素,i-A, i-B, i-C i-x表示i属于种类x,并 ...

  9. hdu3342-判断有向图中是否存在(至少)3元环或回路-拓扑排序

    一:题目大意:   给你一个关系图,判断是否合法,    每个人都有师父和徒弟,可以有很多个:  不合法:  1) . 互为师徒:(有回路)  2) .你的师父是你徒弟的徒弟,或者说你的徒弟是你师父的 ...

  10. C# Hex编码和解码

    /// 从字符串转换到16进制表示的字符串 /// 编码,如"utf-8","gb2312" /// 是否每字符用逗号分隔 public static stri ...