Python:集合操作总结
集合是一组无序排列的不重复元素集
[注]:集合的最大作用是对一个序列进行去重操作
一、集合的分类
在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset)。对于可变集合(set)是允许添加和删除元素的;而对于不可变集合(frozenset)则不允许对集合进行添加和删除操作。
二、集合的创建
与列表([])、元组(())和字典({})不同,集合的创建没有特别的语法格式,因此如果想要创建集合就必须调用创建集合所需的工厂函数:set()和frozenset() [注]:这是创建集合的唯一方法
s=set('Tomwenxing') #创建可变的集合
t=frozenset('Tomwenxing') #创建不可变的集合
new_s=set([1,2,3,4,5,6]) #列表转化为可变集合
new_t=frozenset([1,2,3,4,5,6]) #列表转化为不可变集合 print(s)
print(t)
print(new_s)
print(new_t)
三、集合操作符
[说明]:
(1)B-A:读作“A在B中的差集或相对补集”,意为“只属于B但不属于A的元素组成的集合”
(2)AΔB:读作“A和B的对称差分或对称差集”,意为“集合A与集合B中所有不属于A∩B的元素的集合”
四、集合的方法
A、适用于所有集合的方法
1.s.issubset(t):如果s是t的子集,返回True,否则返回False
name=set('Tomwenxing')
sub_name=set('Tom')
print(sub_name.issubset(name))
2.s.issuperset(t):如果s是t的超集,返回True,否则返回False
name=set('Tomwenxing')
sub_name=set('Tom')
print(name.issuperset(sub_name))
3.s.union(t):返回一个新的集合,该集合是s和t的并集
[注]:s.union(t)相当于“s|t”
name1=set('Tom')
name2=set('Jack')
print(name1.union(name2))#并集操作
print(name1|name2)#并集操作
4.s.intersection(t):返回一个新的集合,该集合是s和t的交集
[注]:s.intersection(t)相当于“s&t”
name1=set('Tomwenxing')
name2=set('Tomhandking')
print(name1.intersection(name2))
print(name1&name2)
5.s.difference(t):返回一个新的集合,该集合是s和t的差集,即该集合中的元素是s的成员但不是t的成员
[注]:s.difference(t)相当于“s-t”
name1=set('Tomwenxing')
name2=set('Tom')
print(name1.difference(name2))
print(name1-name2)
6.s.symmetric_deference(t):返回一个新的集合,该集合是s和t的对称差集,即返回所有s和t独有的(非共同拥有的)元素集合
[注]:s.symmetric_deference(t)相当于“s^t”
name1=set('Tomwenxing')
name2=set('Tomhandking')
print(name1.symmetric_difference(name2))
print(name1^name2)
7.s.copy():返回一个集合s的浅拷贝,效率比工厂函数要好
B、仅适用于可变集合(set)的方法
1.s.update(t):用集合t来更新集合s,更新后集合s在原有元素的基础上增加原先集合t所独有的元素
number1=set('')
number2=set('')
number1.update(number2)
print(number1)
2.s.intersection_update(t):将集合s更新为集合s与集合t的交集
number1=set('')
number2=set('')
number1.intersection_update(number2)
print(number1)
3.s.difference_update(t):将集合s更新为集合s与集合t的差集
number1=set('')
number2=set('')
number1.difference_update(number2)
print(number1)
4.s.symmetric_difference_update(t):将集合s更新为集合s与集合t的对称差集
number1=set('')
number2=set('')
number1.symmetric_difference_update(number2)
print(number1)
5.s.add(obj):在集合s中添加对象obj
number1=set('')
number1.add('Tomwenxing') #作为一个整体添加到集合中
print(number1)
6.s.remove(obj):从集合s中删除对象obj,如果obj不是集合s中的元素,将引发keyerror
language=set(['C','Python','C++','Java'])
language.remove('Java')
print(language)
7.s.discard(obj):如果obj是集合s中的元素,就从集合s中删除对象obj
language=set(['C','Python','C++','Java'])
language.discard('Java')
print(language)
8.s.pop():删除集合s中的任意一个对象,并返回它
language=set(['C','Python','C++','Java'])
element=language.pop()
print(element)
print(language)
9.s.clear():删除集合s中的所有元素
Python:集合操作总结的更多相关文章
- Django数据库性能优化之 - 使用Python集合操作
前言 最近有个新需求: 人员基础信息(记作人员A),10w 某种类型的人员信息(记作人员B),1000 要求在后台上(Django Admin)分别展示:已录入A的人员B列表.未录入的人员B列表 团队 ...
- Python 集合操作
1.集合操作 集合是一个无序的,不重复的数据组合, 他的主要作业如下. 1.去重,把一个列表变成集合,就自动去重了 2.关系测试,测试两组数据之前的交集.差集.并集等关系 list_1 = [1,4, ...
- python集合操作
一:python官方文档 https://docs.python.org/3.6/library/stdtypes.html#set-types-set-frozenset 二:集合概念 集合是无序的 ...
- python集合操作和内置方法
一 集合基本介绍 集合:在{}内用逗号隔开每个值,集合的特点: 每个值必须是不可变类型 集合是无序的 集合的值不能重复 集合的应用场景较少,最重要的应用场景为进行关系运算以及去重. 二 集合的操作 1 ...
- Python 集合set添加删除、交集、并集、集合操作符号
在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1. ...
- [转]python集合set
Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 来源网 ...
- Python学习笔记-Day3-set集合操作
set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- Python值集合操作
list_l1 = [12,1,4,6,9,5,4,2,11] list_l1 = set(list_l1) print(list_l1,type(list_l1)) #集合也是无序的 list_2 ...
- Python 集合set()添加删除、交集、并集、集合操作详解
集合:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.每个元素的地位都是相同的,元素之间是无序的. 创建集合set python set类是在python的sets模块中,大家现在使 ...
随机推荐
- 【Linux】计划任务
计划任务的意义 计划任务 创建和管理在指定时间自动执行的任务 注意事项 要使任务计划在指定时间自动运行,计划任务的服务必须是启动的 计划任务分类 使用at命令调用atd进程设置在某个特定的时间,执行一 ...
- MongoDB的入门
MongoDB mongodb是非关系型数据库 对于关系型数据库,存储数据的时候需要提前建表建库,随着数据的复杂度越来越高,所建的表的数量也越来越多:但是非关系型却不需要 mongodb的基本的命令的 ...
- Redis 4.0.X版本reshard出现错误的解决办法
原文链接:https://my.oschina.net/juluking/blog/1606222 原作者的版本是Redis 4.0.6,我的版本是4.0.8,所以猜测是否所有4.0.x版本都有此问题 ...
- Hadoop(12)-MapReduce框架原理-Hadoop序列化和源码追踪
1.什么是序列化 2.为什么要序列化 3.为什么不用Java的序列化 4.自定义bean对象实现序列化接口(Writable) 在企业开发中往往常用的基本序列化类型不能满足所有需求,比如在Hadoop ...
- Node.js 引用 gm 包错误 Error: Could not execute GraphicsMagick/ImageMagick
今天在学习前后台图像剪切时,下载了有图片剪切瑞士军刀之称的 GraphicsMagick. 给 gm.exe 配置了环境变量,在 npm 下好了 gm 的模块,但是运行却出现了错误. 错误如图: [E ...
- Go 学习之路:异常处理defer,panic,recover
Go没有像Java那样的异常机制,它不能抛出异常.因为设计者们认为,将异常与控制结构混在一起容易使得代码变得混乱.于是乎引入Exception处理: defer,panic,recover; 简单描述 ...
- c++ 参数个数可变的函数
#include <stdio.h> #include <string.h> #include <stdarg.h> int addnum(int i,...) { ...
- day5 RHCE
19 .配置 iSCSI 服务端 (***先做这个题目**,挂载重启,机器会挂掉) 配置server0提供一个iSCSI服务磁盘名为iqn.2014-11.com.example:server0,并 ...
- 【CF613D】Kingdom and its Cities
[CF613D]Kingdom and its Cities 题面 洛谷 题解 看到关键点当然是建虚树啦. 设\(f[x]\)表示以\(x\)为根的子树的答案,\(g[x]\)表示以\(x\)为根的子 ...
- Mysql:查询当天、今天、本周、上周、本月、上月、本季度、本年的数据
1. 今天 select * from 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW()); 2. 昨天 3. 本周 SELECT * FROM 表名 WHERE YEA ...