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 ...
随机推荐
- 用setTimeout模拟setInterval的功能
偶然看到这个题目,稍微写了下,做个笔记,不足之处请指正 //用setTimeout模仿setInterval var MyInterVal = function(fun,tm){ if(this == ...
- RSA加密及加签
1.对方要求我们的私钥是pkcs8格式,但是实际的公钥没有用pkcs8转换之后的私钥完成,所以是可以不是pkcs8的格式的.我们加签跟格式没有关系. 2.数据格式很重要,to_mpint而非crypt ...
- 组件自定义事件(.sync)实例
<div id="root"> <parent></parent> </div> var childNode = { templat ...
- ubuntu1604使用之旅——安装samba
1.安装samba sudo apt-get install samba 2.安装sambaclient sudo apt-get install smbclient 3.修改配置文件 sudo vi ...
- LSTM学习—Long Short Term Memory networks
原文链接:https://colah.github.io/posts/2015-08-Understanding-LSTMs/ Understanding LSTM Networks Recurren ...
- C# 之TripleDESCryptoServiceProvider类加密/解密程序
这篇博文的编写基于以下博客地址提供的知识: TripleDESCryptoServiceProvider 加密解密 基于该博客,我的毕业设计中密码存储加密字符串这一问题得到解决.
- 第七十九课 最短路径(Floyd)
程序如下: #ifndef GRAPH_H #define GRAPH_H #include "Object.h" #include "SharedPointer.h&q ...
- jQuery-3.事件篇---鼠标事件
jQuery鼠标事件之click与dbclick事件 用交互操作中,最简单直接的操作就是点击操作.jQuery提供了两个方法一个是click方法用于监听用户单击操作,另一个方法是dbclick方法用于 ...
- 洛谷 P1763 状态压缩dp+容斥原理
(题目来自洛谷oj) 一天,maze决定对自己的一块n*m的土地进行修建.他希望这块土地共n*m个格子的高度分别是1,2,3,...,n*m-1,n*m.maze又希望能将这一些格子中的某一些拿来建蓄 ...
- CSS权值
选择器权值 标签选择器:权值为1 类选择器和伪类:权值为10 ID选择器:权值为100 通配符选择器:权值为0 行内样式:权值为1000 !important规则: 可调整样式规则的优先级 添加在样式 ...