1.概念

set集合是python的一种基本数据类型,其特点为:

1.元素不重复(可以利用这条性质除去重复元素)

2.在集合中无序

3.元素可hash(int,str,bool,tuple)

set集合的表示方法为:

set ={}

2.一般操作

1.增加

set.add() #把被添加数据添加到集合的开头

set.update() #把元素迭代无序添加到集合中

2.删除

pop()

remove()

clear()

del set

这里注意pop()不能指定变量否则会报错

3.修改

由于set集合中的元素没有索引,因此没法定位set中的元素,因此set集合中的修改只能先删除 再添加

4.查询

set是一个可迭代对象,可以使用for循环查询

for el in s:

print(el)

5.其他操作

s1 = {"刘能", "赵四", "皮长山"}

s2 = {"刘科长", "冯乡长", "皮长山"}

1.交集 s1 & s2

print(s1 & s2) # {"皮长山"}

或者

print(s1.intersection(s2)) # {"皮长山"}

2.并集 s1 | s2 (无序)

print(s1 | s2) # {"刘能", "赵四", "皮长山","刘科长", "冯乡长"}

或者

print(s1.union(s2)) # {"刘能", "赵四", "皮长山","刘科长", "冯乡长"}

3.差集 s1 - s2

#将被差集合中存在于差集合的元素删除,即s1删除s1与s2的交集

print(s1 - s2) # {'赵四', '刘能'}

或者

print(s1.difference(s2)) # {'赵四', '刘能'}

4.反交集 s1 ^ s2

# 删除两个集合的交集然后s1与s2并集

print(s1 ^ s2) # {'冯乡长', '刘能', '刘科长', '赵四'}

或者

print(s1.symmetric_difference(s2)) # {'冯乡长', '刘能', '刘科长', '赵四'}

5.子集 s1 < s2

#判断集合s1是否是集合s2的子集

s1 = {"刘能", "赵四"}

s2 = {"刘能", "赵四", "皮长山"}

print(s1 < s2) # True

或者

print(s1.issubset(s2)) # True

6.超集 s1 > s2

#判断s1是否是s2的超集(是否包含s2)

print(s1 > s2) #False

或者

print(s1.issuperset(s2)) #False

7.使set集合变成一个可hash的

s = frozenset(["赵本山", "刘能", "皮长山", "长跪"])

dic = {s:'123'} # 可以正常使用了

print(dic) #{ frozenset(["赵本山", "刘能", "皮长山", "长跪"]) : '123'}

set()集合的概念与一般操作的更多相关文章

  1. Python 集合set概念和操作

    # 集合 # 概念 # 无序的, 不可随机访问的, 不可重复的元素集合 # 与数学中集合的概念类似,可对其进行交.并.差.补等逻辑运算 # 分为可变集合和非可变集合 # set # 为可变集合 # 增 ...

  2. 关于foreach中对集合执行Add或者Remove操作引发枚举值被修改异常

    方法传入集合List<string> ids; 执行操作后再次循环引发异常 foreach (string id in ids) { ids.Add("a"); } 更 ...

  3. 编写高质量代码改善C#程序的157个建议——建议25:谨慎集合属性的可写操作

    建议25:谨慎集合属性的可写操作 如果类型的属性中有集合属性,那么应该保证属性对象是由类型本身产生的.如果将属性设置为可写,则会增加抛出异常的几率.一般情况下,如果集合属性没有值,则它返回的Count ...

  4. AJPFX总结集合的概念

    //java 中集合的概述==========================================================        集合的概念:              为 ...

  5. MongoDB数据库、集合、文档的操作

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

  6. java:在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作

    在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 //在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 List<String> a ...

  7. 原创】Java并发编程系列2:线程概念与基础操作

    [原创]Java并发编程系列2:线程概念与基础操作 伟大的理想只有经过忘我的斗争和牺牲才能胜利实现. 本篇为[Dali王的技术博客]Java并发编程系列第二篇,讲讲有关线程的那些事儿.主要内容是如下这 ...

  8. day3-Python集合、函数、文件操作,python包的概念

    本节大纲: 1 python程序由包(package).模块(module)和函数组成.包是由一系列模块组成的集合.模块是处理某一类问题的函数和类的集合. 2 包就是一个完成特定任务的工具箱. 3 包 ...

  9. MongoDB快速入门学习笔记2 MongoDB的概念及简单操作

    1.以下列举普通的关系型数据库和MongoDB数据库简单概念上的区别: 关系型数据库 MongoDB数据库 说明 database database 数据库 table collection 数据库表 ...

随机推荐

  1. Java中的接口详解

    接口 是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量.构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8) ...

  2. Linux下/var/log/btmp文件

    今天查看了一下服务器,发现/var/log/btmp日志文件比较大占用磁盘空间,搜索一下,此文件是记录错误登录的日志,就是说有很多人试图使用密码字典登录ssh服务,此日志需要使用lastb程序打开. ...

  3. Linux学习笔记之 Btrfs文件系统简介及使用

    Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...

  4. S-HR之时间空间配置

    <field name="entrys.bizDate"   dataType = "DATE"  label="生效日期" year ...

  5. adjtimex修改tick值用法举例

    测试 用户态下内核时钟计数间隔,默认都是100HZ.因此单个tick代表了10^4 us. 可以设置每个tick代表的时钟长度,因此把tick增加1(即增加为10001us)的影响是每天时间快8.64 ...

  6. Error: Registry key 'Software\JavaSoft\Java Runtime has value '1.8', but '1.7' is

    cmd下输入 java命令时出现该错误: Error: Registry key 'Software\JavaSoft\Java Runtimehas value '1.8', but '1.7' i ...

  7. cmake更新版本简记

    问题描述: 由于需求,要在服务器上安装ANTs(Advanced Normalization Tools).然而最新版的ANTs需要下载源码并用cmake编译, 于是根据https://github. ...

  8. Linux之iptables(二、基本认识和组成)

    iptables的基本认识 Netfilter组件 内核空间,集成在linux内核中 扩展各种网络服务的结构化底层框架 内核中选取五个位置放了五个hook(勾子) function(INPUT.OUT ...

  9. 第六节:pandas函数应用

    1.pipe() :表格函数应用: 2.apply():表格行列函数应用: 3.applymap():表格元素应用.

  10. linux学习8-正则表达式基础

    正则表达式基础 实验介绍 虽然我们这一节的标题是正则表达式,但实际这一节实验只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表 ...