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集合的更多相关文章

  1. python爬虫工具集合

    python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...

  2. Python序列结构--集合

    集合:元素之间不允许重复 集合属于Python无序可变序列,元素之间不允许重复 集合对象的创建与删除 直接将值赋值给变量即可创建一个集合 >>> a = {3,5}>>& ...

  3. python 中的集合set

    python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...

  4. 【转】Python数据类型之“集合(Sets)与映射(Mapping)”

    [转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...

  5. Python的set集合详解

    Python 还包含了一个数据类型 -- set (集合).集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持 union(联合),intersection(交),dif ...

  6. python入门13 集合set

    set集合与数学中的集合同一个概念,是无序不重复元素组成的. #coding:utf-8 #/usr/bin/python """ 2018-11-10 dinghanh ...

  7. Python中的集合类型分类和集合类型操作符解析

    集合类型    数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements).    Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...

  8. Python列表、集合与字典(3)

    目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识   列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系.   在Pytho ...

  9. python学习之【第七篇】:Python中的集合及其所具有的方法

    1.前言 python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重. 集合是无序的,集合中的元素必须是不可变类型.集合可以作为字典的key. ...

  10. python常用模块集合

    python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...

随机推荐

  1. window service 2008 解决80端口占用

    1.进入cmd使用netstat 命令查看指定端口netstat -ano | findstr :802.如下所示:本地的80端口被进程为4的占用 TCP    0.0.0.0:80          ...

  2. less 查看日志

    上下键,空格下一页,字母B上一页  ,字母Q退出,n(小写字母n)上一个关键字位置N(大写字母N)下一个关键词位置] 二.查找某个时间段的日志:比如查询2018-08-15 10:37:32到2018 ...

  3. getfacl语法2

    一.setfacl——设定文件访问控制列表语法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...  -m, --modify=acl 更改文件的访问控制 ...

  4. Java notepad++ 配置

    1.下载安装插件 NppExec https://nchc.dl.sourceforge.net/project/npp-plugins/NppExec/NppExec%20Plugin%20v0.6 ...

  5. 剑指Offer 27. 字符串的排列 (字符串)

    题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输 ...

  6. Linux下不停止服务,清空nohup.out文件

    转载:http://www.sucheasy.com/OracleFusionMiddleware/640.html 1.nohup.out的由来及作用 用途:LINUX命令用法,不挂断地运行命令. ...

  7. iOS开发 SVN回退到某一个版本

    1.选择你要恢复的工程,(注意:从SVN上checkout下来的工程不要改变,移动位置) 2.找到SVN的导航栏,点击“Working Copy”--->"Revert" 3 ...

  8. Windows下用PIP安装scipy出现no lapack/blas resources found

    Windows下升级了pandas,但是发现scipy包随后引用出错,后来确认需重新安装scipy, 在用PIP安装scipy出现no lapack/blas resources found的错误,具 ...

  9. hdu 5776 抽屉定理

    sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submiss ...

  10. 安卓控制LED驱动编写

    开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 打开Android Stud ...