一、集合

1.作用

去重

#set的去重只能正对不可变类型,而且是无序的
l=['a','b',1,'a','a']
s=set(l)
s # 将列表转成了集合
{'b', 'a', 1}
l_new=list(s) # 再将集合转回列表
l_new
['b', 'a', 1] # 去除了重复,但是打乱了顺序 # 针对不可变类型,并且保证顺序则需要我们自己写代码实现,例如
l=[
{'name':'lili','age':18,'sex':'male'},
{'name':'jack','age':73,'sex':'male'},
{'name':'tom','age':20,'sex':'female'},
{'name':'lili','age':18,'sex':'male'},
{'name':'lili','age':18,'sex':'male'},
]
new_l=[] for dic in l:
if dic not in new_l:
new_l.append(dic)
print(new_l)
# 结果:既去除了重复,又保证了顺序,而且是针对不可变类型的去重
[
{'age': 18, 'sex': 'male', 'name': 'lili'},
{'age': 73, 'sex': 'male', 'name': 'jack'},
{'age': 20, 'sex': 'female', 'name': 'tom'}
]

2.定义

在{}内用都逗号分隔多个元素,元素满足以下三个条件

第一、集合内必须为不可变类型

第二、集合内元素无序

第三、集合内没有重复元素,如有会自动去重

注意:s = {} 默认是空字典,要定义空集合

3.类型转换

print(set("aaaaaaccccbcbcbcb"))#不可转换数字类型
>>>{'b', 'c', 'a'}

4.内置方法

关系运算

4.1交集:两者共有的

set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set1 & set2)
>>>{1, 3}

4.2合集:两者融合去重

set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set1 | set2)
>>>{1, 2, 3, 4, 5, 7}

4.3差集:某个集合单独有的

#set1独有的
set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set1 - set2)
>>>{2, 4} #set2独有的
set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set2 - set1)
>>>{5, 7}

4.4对称差集:两个集合各自单独有的组成的集合

set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set2 ^ set1)
>>>{2, 4, 5, 7}

4.5父子集:判断包含关系

set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set2 > set1)
>>>False

5.其他内置方法

5.1长度,成员运算,循环(略)

5.2discard(推荐使用),remove

#Remove an element from a set if it is a member.
#If the element is not a member, do nothing.
#文本解释,删除一个元素,如果不存在do nothing
s={1,2,3}
s.discard(4) # 删除元素不存在do nothing
print(s)
>>>{1,2,3}
s.remove(4) # 删除元素不存在则报错
>>>报错

5.2update

s={1,2,3}
s.update({1,3,5})#更新,取合集
print(s)
>>>{1, 2, 3, 5}

5.3pop

s={1,2,3}
res = s.pop()#默认删除第一个元素,并作为返回值返回
print(s)
>>>{2, 3}
print(res)
>>>1

5.4add

s={1,2,3}
s.add((1,2,3))#只能添加不可变类型
print(s)

5.5isdisjoint(了解)

s = {1,2,3,4}
res=s.isdisjoint({3,4,5,6}) # 两个集合完全独立、没有共同部分,返回True
print(res)
False

二 基本数据类型总结

day10 基本数据类型(下)的更多相关文章

  1. mysql 开发基础系列13 选择合适的数据类型(下)

    一.  BloB和Text 1. 合成索引 合成索引可以提高大文本字段BLOB和Text的查询性能, 合成索引是在表中增加一个字段存放散列值,这种技术只能用于精确匹配的查询,可以使用md5()或sha ...

  2. JavaScript学习笔记——变量和数据类型

    一.javascript命名规范 1. 严格区分大小写 2. 变量的命名必须以字母或 _或 $开头,余下的部分可以是任意的字母,数字,或者是 _或者是$ 3.不能用关键字或者是保留字命名. 4.jav ...

  3. SqlServer中日期和时间数据类型及函数 【转】

    来源:http://blog.csdn.net/royalwzy/article/details/6446075 日期和时间数据类型 下表列出了 Transact-SQL 的日期和时间数据类型. 数据 ...

  4. go的基本数据类型

    一,数据类型的介绍 在go语言中,数据类型是用于声明函数和变量的:数据类型是为了把数据分成所需内存不同大小的数据,除了在需要使用大数据的时候才会申请大内存,这样就会充分的使用内存 Go 语言按类别有以 ...

  5. JavaScript基础知识(数据类型)

    数据类型 布尔:true/fasle console.log(typeof true);// "boolean" Number : true -->1 false --> ...

  6. SAP 数据类型

    数据元素和基本类型对应关系 数据字典预置类型 ABAP类型 运行长度 说明 ACCP N(6) 6 会计计算周期 CHAR C(n) 1-255 字符 CLNT C(3) 3 集团,数据区域代码 CU ...

  7. 1. Ubuntu下MongoDB的安装和使用

    一.MongoDB介绍 MongoDB 是一个是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似jso ...

  8. SQLSERVER中KeyHashValue的作用(下)

    SQLSERVER中KeyHashValue的作用(下) 昨天中午跟高文佳童鞋讨论了KeyHashValue的作用,到最后还是没有讨论出结果 昨天晚上德国的兄弟傅文伟做了一下实验,将实验结果交给我 感 ...

  9. nodejs(三)下之mangoDB

    mongoDB 简介 一.什么是MongoDB ? 1.MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. 2.Mo ...

随机推荐

  1. InstallShield 2015 Limited Edition 打包教程

    InstallShield 2015 Limited Edition 打包教程 右键解决方案,新增项目,选择其他项目类型,安装和部署. InstallShield2015可以免费使用,但需要下载.安装 ...

  2. Spring Cloud 系列之 Alibaba Nacos 注册中心(一)

    前言 从本章节开始,我们学习 Spring Cloud Alibaba 相关微服务组件. Spring Cloud Alibaba 介绍 Spring Cloud Alibaba 致力于提供微服务开发 ...

  3. Openshift 4.4 静态 IP 离线安装系列:初始安装

    上篇文章准备了离线安装 OCP 所需要的离线资源,包括安装镜像.所有样例 Image Stream 和 OperatorHub 中的所有 RedHat Operators.本文就开始正式安装 OCP( ...

  4. MySQL——事务(Transaction)详解

    原文:https://blog.csdn.net/w_linux/article/details/79666086

  5. Android学习笔记BroadcastReceiver(广播接收者)

    Android发送广播的过程 代码实现 MainActivity.java import androidx.appcompat.app.AppCompatActivity; import androi ...

  6. 【Spring注解驱动开发】在@Import注解中使用ImportBeanDefinitionRegistrar向容器中注册bean

    写在前面 在前面的文章中,我们学习了如何使用@Import注解向Spring容器中导入bean,可以使用@Import注解快速向容器中导入bean,小伙伴们可以参见<[Spring注解驱动开发] ...

  7. 解决错误 CS1617 Invalid option '7.1' for /langversion; must be ISO-1, ISO-2, Default or an integer in range 1 to 6.

    解决错误 CS1617 Invalid option '7.1' for /langversion; must be ISO-1, ISO-2, Default or an integer in ra ...

  8. C# 实现定时/循环任务

    用C#实现定时/循环任务,需要使用到Quartz,在项目的NuGet包管理中可以找到并添加.一般还会伴随安装一个Log4Net,主要用它来记录在任务执行过程中遇到的问题.这边主要是讲实现定时/循环任务 ...

  9. ORA-12514:监听程序无法识别

    使用plsql远程登录oracle数据库时,出现无法识别监听程序的错误.很大机率是配置文件出错. 配置文件如下: listener.ora是服务器端用的,oracle监听程序,就是读的这个文件,里面有 ...

  10. 事务的特性ACID、隔离级别

    1.事务特性ACID 1.1 事务的四大特性 1.原子性(Atomicity) 事务包装的一组sql,要么都执行成功,要么都失败.这些操作是不可分割的. 2.一致性(Consistency) 数据库的 ...