Python的set集合
set集合也用{}表示,set中的元素是不重复的、无序的,且它里面的元素必须是可hash的(int,str,tuple,bool),set是可变的。
1.使用set去重
m = [1, '苹果', '', '苹果', 3, 1, '']
s = list(set(m))
print(s) ['苹果', 1, '3', 3]
2.set集合增删查改
1)增 使用add
s = {'成龙', '李小龙', '甄子丹', '李连杰'}
s.add('周星驰')
print(s)
{'周星驰', '李连杰', '甄子丹', '李小龙', '成龙'}
使用update ps:迭代添加
s = {'成龙', '李小龙', '甄子丹', '李连杰'}
s.update('周星驰')
print(s)
{'甄子丹', '驰', '李连杰', '周', '成龙', '星', '李小龙'}
2)删 使用pop()随机删除一个
s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s.pop()
print(s)
{'甄子丹', '驰', '李连杰', '周', '成龙', '星', '李小龙'}
使用remove()直接删除元素
s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s.remove('甄子丹')
print(s)
{'周星驰', '李连杰', '李小龙', '成龙'}
使用clear()清空集合
s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s.clear()
print(s)
set()
3)修改
set集合中的数据没有索引,也没办法去定位一个元素,所以没办法直接修改,可以采用先删除后添加的方式来完成修改操作。
4)set集合是一个可迭代对象,可以进行for循环。
3.常用操作
1)交集 &
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 & s2)
4 print(s1.intersection(s2))
{'甄子丹', '周星驰'}
2)并集 |
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 | s2)
4 print(s1.union(s2))
{'李连杰', '李小龙', '周星驰', '赵本山', '成龙', '潘长江', '甄子丹'}
3)差集 -
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 - s2)
print(s1.difference(s2))
{'李小龙', '李连杰', '成龙'}
4)反交集 ^
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
print(s1 ^ s2)
print(s1.symmetric_difference(s2))
{'李连杰', '成龙', '李小龙', '赵本山', '潘长江'}
5)子集
s1 = {'甄子丹', '周星驰'}
s2 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
print(s1 < s2)
print(s1.issubset(s2))
Ture
6)超集
s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
s2 = {'甄子丹', '周星驰'}
print(s1 > s2)
print(s1.issuperset(s2))
Ture
4.frozenset
可用frozenset定义一个不可变的集合。
Python的set集合的更多相关文章
- python爬虫工具集合
python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...
- Python序列结构--集合
集合:元素之间不允许重复 集合属于Python无序可变序列,元素之间不允许重复 集合对象的创建与删除 直接将值赋值给变量即可创建一个集合 >>> a = {3,5}>>& ...
- python 中的集合set
python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...
- 【转】Python数据类型之“集合(Sets)与映射(Mapping)”
[转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...
- Python的set集合详解
Python 还包含了一个数据类型 -- set (集合).集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持 union(联合),intersection(交),dif ...
- python入门13 集合set
set集合与数学中的集合同一个概念,是无序不重复元素组成的. #coding:utf-8 #/usr/bin/python """ 2018-11-10 dinghanh ...
- Python中的集合类型分类和集合类型操作符解析
集合类型 数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements). Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...
- Python列表、集合与字典(3)
目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识 列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系. 在Pytho ...
- python学习之【第七篇】:Python中的集合及其所具有的方法
1.前言 python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重. 集合是无序的,集合中的元素必须是不可变类型.集合可以作为字典的key. ...
- python常用模块集合
python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...
随机推荐
- linux下的$0-n作用
电面的时候回答上来一部分了....呵呵......总结一下!!! $0 Shell本身的文件名 $1-$n 添加到Shell的各参数值.$1是第1参数.$2是第2参数… $$ Shell本身的PID( ...
- session_unset,session_destroy
session_unset()释放当前用户在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的sessionid session_destroy()删除当前用户对应 ...
- 3.2 unittest执行顺序
3.2 unittest执行顺序 前言很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行.本篇通过最简单案例 ...
- java 环形链表实现约瑟夫(Joseph)问题
约瑟夫问题又名丢手绢问题.相传著名犹太历史学家 Josephus 利用其规则躲过了一场自杀游戏,而后投降了罗马. 问题: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.* 从编号为 ...
- winform获取EXE图片
winform获取EXE图片 using (FileStream fs = new System.IO.FileStream(n, FileMode.OpenOrCreate, FileAccess. ...
- 常用解压包命令----tar--rar
systemctl stop firewalld --关闭 linux服务器防火墙 1.*.tar 用 tar –xvf 解压 2.*.gz 用 gzip -d或者gunzip 解压 3.*. ...
- Python全栈之路----函数----嵌套函数
函数内部可以再次定义函数 要执行函数,必须调用 def func1(): print('alex') def func2(): print('eric') func2() #如果没有这一句,不会pri ...
- configparse模块和hashlib模块
# import configparser # # config = configparser.ConfigParser() #config = {} # config['DEFAULT'] = {' ...
- this指向问题 --无return
this的指向在函数定义的时候是确定不了的只有在函数执行的时候才能确定this到底指向谁.this指向上一级对象 1.函数调用,this指向window var color = "red&q ...
- ElasticSearch(四):关于es的一些基础知识讲解
上一篇博客更新完之后,我发现一个问题:在我创建索引的时候依旧无法准确的理解每个字段的意义,所以就有了这个. 1. 关于索引 1.1 关于索引的一些基础知识 在创建标准化索引的时候,我们传入的请求体如下 ...