0. 集合的作用及特点

  集合具有去重和关系测试两大作用,它具有无序的特点。

list1 = [1,2,3,4,5,7,6,8,6,4]
list1 = set(list1)
print(list1)
>>>:{1, 2, 3, 4, 5, 6, 7, 8}

1, 几何关系

(1)取交集

取交集有两种方法,一种是直接采用函数,一种使用运算符

list2 = set([2,6,8,9,0])

list1.intersection(list2)  或者 list1 & list2

 list1 = [1,2,3,4,5,7,6,8,6,4]
list1 = set(list1)
list2 = [2,3,4,8,9,0]
list2 = set(list2)
#取交集
print(list1.intersection(list2))
print(list1 & list2)
list1 = [1,2,3,4,5,7,6,8,6,4]
list1 = set(list1)
list2 = [2,3,4,8,9,0]
list2 = set(list2)
#取交集
print(list1.intersection(list2))
print(list1 & list2)
>>>:{8, 2, 3, 4}
>>>:{8, 2, 3, 4}

(2) 取并集

list1.union(list2)   或   list1 | list2

#取并集
print(list1.union(list2))
print(list1 | list2)
>>>:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>>:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

(3) 求差集

list1.difference(list2)  #in list1 but not in list2

#差集
print(list1.difference(list2))#in list1 but not in list2
print(list2.difference(list1))#in list2 but not in list1
>>>:{1, 5, 6, 7}
>>>:{0, 9}

(4)子集:主要是判断list1是否为list2的子集

list1.issubset(list2) #是,则输出True;不是,则输出False

print(list1.issubset(list2))#判断list1是否为list2的子集
>>>:False

(5)父集

list1.issuperset(list2)

print(list1.issuperset(list2))
>>>:False
list3 =set([1,3,7])

print(list1.issuperset(list3))

>>>:True

(6)对称差集

list1.symmetric_difference(list2)  或 list1 ^ list2

print(list1.symmetric_difference(list2))
print(list1^list2)
>>>:{0, 1, 5, 6, 7, 9}
>>>:{0, 1, 5, 6, 7, 9}

2. 基本操作:增删改查

list1.add(30)  #添加一项

list1.update([33,56,77,90]) #添加多项

list1.remove('dd')  #删除一项,如果集合中不存在该元素,则会报错

list.pop()  #删除任意一个元素

list.discard('dd')  #如果集合中不存在该元素,则返回None

  

day5:python学习之集合的更多相关文章

  1. Python学习五|集合、布尔、字符串的一些特点

    #集合本身就像无值的字典 list1 = set([1,2,3,4]) list2 = {1,2,3,4} print('list1 == list2?:',list1==list2)#list1 = ...

  2. 第五周 day5 python学习笔记

    1.软件开发的常规目录结构 更加详细信息参考博客:http://www.cnblogs.com/alex3714/articles/5765046.html         2.python中的模块 ...

  3. Python学习之==>集合

    1.简介 集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复数据的. 2.集合的作用 它可以把一个列表中重复的数据去掉,而不需要你再写判断 可以做关系测试,比 ...

  4. Python学习笔记——集合类型

    集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset) 可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素 不可变集合是有哈希值的,能被用做字典的键或者是作为 ...

  5. python学习之集合

    集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 创建格 ...

  6. Python学习——set集合的补充

    set 是一个无序且不重复的元素集合>>> num = {1,2,3,4,5} 1.add()添加一个元素 >>> num.add(6) >>> ...

  7. Python学习 :集合

    集合 Set 集合的创建 集合的创建只有一种方式 集合中的元素必须是不可变的数据类型 集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选 s=set('xiaoming') s1=['ale ...

  8. python学习-21 集合 2

    集合的其他方法 1.交差补集 math = {'xm','xh','xg','xx'} english ={'xm','xh','dm','john'} print(math.symmetric_di ...

  9. python学习-20 集合

    集合set 1.由不同元素组成的集合,集合是一组无序排列的,集合中的元素必须是不可变的 -定义集合 第一种: jh = {1,2,3,4} print(type(jh),jh) 运行结果: <c ...

随机推荐

  1. Linq操作DataTable

    IEnumerable<DataRow> q = from dr in dt.AsEnumerable()                          where dr.Field& ...

  2. 操作ini配置文件设计一个最基本的可视化数据库系统

    对于很多小项目来说,不需要搭建专门的数据库系统(例如用SQLite搭建本地数据库),这时可以用ini配置文件实现一个最基本的数据库,实现数据库最基本的增删改查功能. ini配置文件的用法参考我以前写的 ...

  3. DataStage 二、InfoSphere Information Server进程的启动和停止

    DataStage序列文章 DataStage 一.安装 1 关于进程需要了解的基础知识 名称 说明 ASB代理进程 通信代理程序,它的作用是协助层与层之间的通信,默认端口是31531,它以后台进程的 ...

  4. Weblogic的中的文件上传

    在weblogic中在jsp页面中this.getServletContext().getRealPath("/upload")这样的写法是要报错的在jsp页面总你甚至不能使用th ...

  5. serialVersionUID的作用以及IDEA、Eclipse如何自动生成serialVersionUID

    说到serialVersionUID,首先要讲讲序列化. 序列化: 序列化可以将一个java对象以二进制流的方式在网络中传输并且可以被持久化到数据库.文件系统中,反序列化则是可以把之前持久化在数据库或 ...

  6. join sql图

    SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name   id  name       id   name --  - ...

  7. ScreenCapture手动卸载教程-Xproer.ScreenCapture

    此教程包含WindowsXP,Windows7(x86) ,Windows7(x64),Firefox,Chrome卸载教程. 1.1. 手动卸载控件-Windows XP 主要步骤如下: 1.关闭所 ...

  8. 网格去噪 Mesh Denoising Guided by Patch Normal Co-filtering via Kernel Low-rank Recovery

    http://staff.ustc.edu.cn/~lgliu/ 网格去噪 https://blog.csdn.net/lafengxiaoyu/article/details/73656060

  9. npm 安装less

    npm install less less-loader --save 在style加上lang="less" 就可以直接用了

  10. 「NOI2014」魔法森林

    题目链接 戳我 \(Solution\) 两个变量,emm...不好搞啊. 于是我们可以按照\(A\)排序.然后动态加边,因为\(A\)是越来越大,所以不需要管他,只要使得\(1\)~\(n\)的路径 ...