集合( set):把不同的元素组成一起形成集合,是python基本的数据类型。

集合元素(set elements):组成集合的成员(不可重复)

class set(object)
| set() -> new empty set object
| set(iterable) -> new set object
|
| Build an unordered collection of unique elements.
|
| Methods defined here:
|
| __and__(self, value, /)
| Return self&value.
|
| __contains__(...)
| x.__contains__(y) <==> y in x.
|
| __eq__(self, value, /)
| Return self==value.
|
| __ge__(self, value, /)
| Return self>=value.
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __gt__(self, value, /)
| Return self>value.
|
| __iand__(self, value, /)
| Return self&=value.
|
| __init__(self, /, *args, **kwargs)
| Initialize self. See help(type(self)) for accurate signature.
|
| __ior__(self, value, /)
| Return self|=value.
|
| __isub__(self, value, /)
| Return self-=value.
|
| __iter__(self, /)
| Implement iter(self).
|
| __ixor__(self, value, /)
| Return self^=value.
|
| __le__(self, value, /)
| Return self<=value.
|
| __len__(self, /)
| Return len(self).
|
| __lt__(self, value, /)
| Return self<value.
|
| __ne__(self, value, /)
| Return self!=value.
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
|
| __or__(self, value, /)
| Return self|value.
|
| __rand__(self, value, /)
| Return value&self.
|
| __reduce__(...)
| Return state information for pickling.
|
| __repr__(self, /)
| Return repr(self).
|
| __ror__(self, value, /)
| Return value|self.
|
| __rsub__(self, value, /)
| Return value-self.
|
| __rxor__(self, value, /)
| Return value^self.
|
| __sizeof__(...)
| S.__sizeof__() -> size of S in memory, in bytes
|
| __sub__(self, value, /)
| Return self-value.
|
| __xor__(self, value, /)
| Return self^value.
|
| add(...)
| Add an element to a set.
|
| This has no effect if the element is already present.
|
| clear(...)
| Remove all elements from this set.
|
| copy(...)
| Return a shallow copy of a set.
|
| difference(...)
| Return the difference of two or more sets as a new set.
|
| (i.e. all elements that are in this set but not the others.)
|
| difference_update(...)
| Remove all elements of another set from this set.
|
| discard(...)
| Remove an element from a set if it is a member.
|
| If the element is not a member, do nothing.
|
| intersection(...)
| Return the intersection of two sets as a new set.
|
| (i.e. all elements that are in both sets.)
|
| intersection_update(...)
| Update a set with the intersection of itself and another.
|
| isdisjoint(...)
| Return True if two sets have a null intersection.
|
| issubset(...)
| Report whether another set contains this set.
|
| issuperset(...)
| Report whether this set contains another set.
|
| pop(...)
| Remove and return an arbitrary set element.
| Raises KeyError if the set is empty.
|
| remove(...)
| Remove an element from a set; it must be a member.
|
| If the element is not a member, raise a KeyError.
|
| symmetric_difference(...)
| Return the symmetric difference of two sets as a new set.
|
| (i.e. all elements that are in exactly one of the sets.)
|
| symmetric_difference_update(...)
| Update a set with the symmetric difference of itself and another.
|
| union(...)
| Return the union of sets as a new set.
|
| (i.e. all elements that are in either set.)
|
| update(...)
| Update a set with the union of itself and others.
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __hash__ = None

  集合分类:可变集合、不可变集合

  可变集合(set):可添加和删除元素,非可哈希的,不能用作字典的键,也不能做其它集合的元素。

  不可变集合(fromzenset):与上面的恰恰相反

一、集合的相关操作

  1. 创建集合

    由于集合没有自己的语法格式,只能通过集合的工厂方法set()和frozenset()创建。创建集合仅有上述一种方法。

>>> s1 = set([1,2,2,3,4])
>>> s2 = frozeset([1,2,2,3,4])
>>> s2 = frozenset([1,2,2,3,4])
>>> s1
{1, 2, 3, 4}
>>> s2
frozenset({1, 2, 3, 4})

  2.  访问集合

  由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。

  3. 更新集合

  更新集合主要有下述三种方法

  • s.add()

  • s.update() # 更新多个元素

  • s.remove()

    使用del关键字删除整个集合

     

  4. 集合类型操作符

  • in ,not in
  • 集合等价不等价(==, !=)
  • 子集和超集
  • 联合(取并集)
    • 联合(union)操作与集合的or操作其实等价的,联合符号有个等价的方法,union()。
    • >>> a = set([1,2,3])
      >>> b = set([4,5,6])
      >>> a | b
      {1, 2, 3, 4, 5, 6}   
  • 交集
    • 等价于intersection()方法
  • >>> a = set([1,2,3,4])
    >>> b = set([3,4,5,6])
    >>> a & b
    {3, 4}

    差集

    •   等价于difference方法
  • >>> a
    {1, 2, 3, 4}
    >>> b
    {3, 4, 5, 6}
    >>> a - b
    {1, 2}

    >>> a.difference(b)
    {1, 2}

    对称差集

    • 反向交集,对称差分是集合的XOR(‘异或’),取得的元素属于s1,s2但不同时属于s1和s2.其等价方法symmetric_difference()
    • >>> a ^ b
      {1, 2, 5, 6}
      >>> a.symmetric_difference(b)
      {1, 2, 5, 6}

最新文章

  1. 排序系列 之 折半插入排序算法 —— Java实现
  2. JAVA中关于并发的一些理解
  3. window下 配置gitlab ssh非端口22端口
  4. 我的qq邮箱的GPG公钥
  5. NeHe OpenGL教程 第四十五课:顶点缓存
  6. 四则运算小程序测试--c++--软件工程课
  7. mysql 复杂的查询语句,工作中用到的记录下
  8. 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针
  9. HighCharts之2D饼图
  10. What to do when you have small dataset - 拥有小型数据集时该怎么办
  11. solr window环境安装配置和管理页面基本使用
  12. opencv入门指南(转载)
  13. Ext.js入门(二)
  14. VGA的行场时序
  15. Miscellaneos:版本控制、SVN、VSS
  16. DIV布局之position详解
  17. MyBatis动态代理查询出错
  18. Problem C: #104. 普通平衡树
  19. js中的控制结构for-in语句
  20. linux文件系统总结

热门文章

  1. python3爬虫-通过selenium获取TB商品
  2. 关于javascript中call()和apply()方法的总结
  3. 替代alert的消息框和提示框
  4. Fpm启动机制及流程分析———详细
  5. ElasticSearch优化系列三:机器设置(内存)
  6. 百度云虚拟主机BCH安装PHP框架CodeIgniter
  7. BurpSuite—-Repeater模块(中继器)
  8. etl是什么
  9. java入门---变量类型&amp;类变量&amp;局部变量&amp;实例变量&amp;静态变量
  10. 20155206 2016-2017-2 《Java程序设计》第十周学习总结