python3【基础】-集合
2024-08-30 07:51:08
集合( 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}
最新文章
- 排序系列 之 折半插入排序算法 —— Java实现
- JAVA中关于并发的一些理解
- window下 配置gitlab ssh非端口22端口
- 我的qq邮箱的GPG公钥
- NeHe OpenGL教程 第四十五课:顶点缓存
- 四则运算小程序测试--c++--软件工程课
- mysql 复杂的查询语句,工作中用到的记录下
- 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针
- HighCharts之2D饼图
- What to do when you have small dataset - 拥有小型数据集时该怎么办
- solr window环境安装配置和管理页面基本使用
- opencv入门指南(转载)
- Ext.js入门(二)
- VGA的行场时序
- Miscellaneos:版本控制、SVN、VSS
- DIV布局之position详解
- MyBatis动态代理查询出错
- Problem C: #104. 普通平衡树
- js中的控制结构for-in语句
- linux文件系统总结
热门文章
- python3爬虫-通过selenium获取TB商品
- 关于javascript中call()和apply()方法的总结
- 替代alert的消息框和提示框
- Fpm启动机制及流程分析———详细
- ElasticSearch优化系列三:机器设置(内存)
- 百度云虚拟主机BCH安装PHP框架CodeIgniter
- BurpSuite—-Repeater模块(中继器)
- etl是什么
- java入门---变量类型&;类变量&;局部变量&;实例变量&;静态变量
- 20155206 2016-2017-2 《Java程序设计》第十周学习总结