python之集合set
1.测试
# python2和python3方法列表相同
ops23 = ['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update',
'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference',
'symmetric_difference_update', 'union', 'update'] for op in ops23:
try:
print('#'*10)
S_abc = set('abc')
S_cde = set('cde')
print(op,eval('S_abc.{}(S_cde)'.format(op)))
print('S_abc:',S_abc)
print('S_cde:',S_cde)
except Exception as why:
print(op,why)
2. 总结
(1)元素操作
S.add 添加hashable type,注意set为unhashable type
S.pop随机删除并返回,remove删除指定元素可能报错,discard删除指定元素不会报错
S.clear 清空
S.copy 浅复制shallow copy
(2)判断关系
S.isdisjoint不相交 S.issubset子集 S.issuperset超集
(3)集合操作
命名方法 | 运算符语法 | 图例结果 | 对应update |
S.difference(S1) | S-S1 | A | S -=S1 |
S.intersection(S1) | S&S1 | B | S &=S1 |
S.symmetric_difference(S1) | S^S1 | A+C | S ^=S1 |
S.union(S1) | S|S1 | A+B+C | S |=S1 |
(a) S.xxx返回结果集合,S.xxx_update原地更新S,返回None,union对应方法为update而不是union_update
(b)命名方法相比运算符语法,S1可以是由可哈希的项目组成的任意迭代
>>> set('abc').union('cde')
set(['a', 'c', 'b', 'e', 'd'])
>>> set('abc').union(set('cde'))
set(['a', 'c', 'b', 'e', 'd'])
>>>
3.输出分析
##########
('add', TypeError("unhashable type: 'set'",))
##########
('clear', TypeError('clear() takes no arguments (1 given)',))
##########
('copy', TypeError('copy() takes no arguments (1 given)',))
Return a shallow copy of a set.
In [45]: S_abc.copy() == S_abc
Out[45]: True In [46]: S_abc.copy() is S_abc
Out[46]: False ##########
('difference', set(['a', 'b']))
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd']))
##########
('difference_update', None)
('S_abc:', set(['a', 'b'])) #更新S1,留不同
('S_cde:', set(['c', 'e', 'd'])) ##########
('discard', None)
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd'])) ##########
('intersection', set(['c']))
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd']))
##########
('intersection_update', None)
('S_abc:', set(['c'])) #更新S1,留交集
('S_cde:', set(['c', 'e', 'd'])) ##########
('isdisjoint', False)
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd']))
Return True if two sets have a null intersection.
##########
('issubset', False)
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd']))
##########
('issuperset', False)
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd'])) ##########
('pop', TypeError('pop() takes no arguments (1 given)',))
Remove and return an arbitrary set element.随机返回
##########
('remove', KeyError(set(['c', 'e', 'd']),))
########## ('symmetric_difference', set(['a', 'b', 'e', 'd']))
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd']))
##########
('symmetric_difference_update', None)
('S_abc:', set(['a', 'b', 'e', 'd'])) #更新S1,所有异或 01 10
('S_cde:', set(['c', 'e', 'd'])) ##########
('union', set(['a', 'c', 'b', 'e', 'd'])) #并集
('S_abc:', set(['a', 'c', 'b']))
('S_cde:', set(['c', 'e', 'd']))
##########
('update', None) #更新S1为全集
('S_abc:', set(['a', 'c', 'b', 'e', 'd']))
('S_cde:', set(['c', 'e', 'd']))
python之集合set的更多相关文章
- Python 3 集合基础和概念!
Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...
- Python的集合
1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...
- Python 操作集合
Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...
- Python中集合set()的使用及处理
在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...
- Python:集合操作总结
集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...
- python 的集合 set()操作
Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素. 有以下运算: 1.创建一个set ()集合: 2.add:增加集合元素 3.clea ...
- python set集合(16)
在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...
- python frozenset集合(17)
在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...
- Python数据类型--集合(set)
Python的集合是无序.可迭代的容器对象,所有元素放在一对大括号中{},元素之间使用逗号隔开,同一集合内的元素具有唯一性,不允许重复. 集合中只能包含数字.字符串.元组等不可变类型的数据,不能包含列 ...
- [python]set集合学习
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...
随机推荐
- java.sql.SQLException: Column count doesn't match value count at row 1 解决办法
♦ 所存储的数据与数据库表的字段类型定义不匹配. ♦ 解决办法: 检查dao层(数据访问层)的sql语句中赋值的参数是否与数据库中的字段个数.字段类型一致.
- 【转】Java并发编程:synchronized
一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个资源的情况,这种资源可以是各种类型的资源:一个变量.一个对象.一个文件.一个数据库表等,而 ...
- 激活函数Sigmoid、Tanh、ReLu、softplus、softmax
原文地址:https://www.cnblogs.com/nxf-rabbit75/p/9276412.html 激活函数: 就是在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端. 常见 ...
- MySQL-mysql 8.0.12安装教程
1.下载zip安装包 去官网下载MySQL8.0 For Windows zip包,下载地址:https://dev.mysql.com/downloads/mysql/ 2.安装 解压zip包到安装 ...
- URLConnection和HttpURLConnection
URLConnection和HttpURLConnection使用的都是java.net中的类,属于标准的java接口. HttpURLConnection继承自URLConnection,差别在与H ...
- (常用)os模块
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cdos.curdi ...
- mariadb:分区自动创建与删除
参考文章:https://blog.csdn.net/xlxxcc/article/details/52486426 1.以日自动创建与删除分区 调用示例:CALL proc_day_partitio ...
- Android下利用zbar类库实现扫一扫
程序源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/zbardemo.zip Android下常用的条码扫描类库有zxing和zbar,比较了一下 ...
- SwipeRefreshLayout详解和自定义上拉加载更多
个人主页 演示Demo下载 本文重点介绍了SwipeRefreshLayout的使用和自定View继承SwipeRefreshLayout添加上拉加载更多的功能. 介绍之前,先来看一下SwipeRef ...
- PHP7运行环境搭建(Windows7)
注:本文来源于< PHP7运行环境搭建(Windows7) > php7号称能直追facebook的HHVM,为了体验一把传说中的高性能,我特意在本地电脑上尝试着安装了php7, ...