一、集合定义及其功能

集合是一个无序的、不重复的数据组合,和字典列表一样也是一种数据类型。

集合两个最主要的功能:①去重(把一个列表变成集合,就自动去重了)

②关系测试(测试两组数据之间的交、并、差集等关系)

二、关系测试

首先,如何创建集合?

两种方式:(1)直接创建

a=set([1,8,2,3,5,4,5,3])

(2)将列表转化成集合

list1=[5,9,7,3,6,6,7,95,78,65,102]       #创建列表

list1=set(list1)                                      #将列表转化成集合

在这里需要说明,集合是无序的,尽管将集合a输出:print(a),得到的结果是

看上去好像自动做了排序,其实不然,只是集合的数据太少了,输出list1就不是这样了:

1.取两个集合的交集:

两种写法:①intersection()方法

print(list1.intersection(a))
print(a.intersection(list1))

这两种写法没有任何区别,输出结果都是

②数学表示

print(list_1 & a)

2.取并集:

也是两种方法:①union()方法

print("union:",a.union(list_1))

②数学表示

print("union:",a|list_1)

输出结果:

3.取差集:

亦是两种方法:①difference()方法

print("difference:",list_1.difference(a))  #差集(list_1减去交集)
print("difference:",a.difference(list_1)) #差集(a减去交集)

②数学表示

print("list_1 - a :",list_1-a)
print("a - list_1 :",a-list_1)

运行结果:

4.判断是否是父集和子集的关系:

issubset()方法和issuperset()方法

print("issubset:",list_1.issubset(a))         #判断list_1是不是a的子集
print("issuperset:",a.issuperset(list_1)) #判断a是不是List_1的父集

当然,肯定都不是,再创建一个集合试一试

list_2=set([1,3,5])
print(list_2.issubset(a)) #判断list_2是不是a的子集,是则返回True
print(a.issuperset(list_2)) #判断a是不是list_2的父集,不是返回False

运行结果:

5.对称差集:

对称差集是指两个集合的并集减去交集

①symmetric_difference()方法

print("symmetric_difference:",a.symmetric_difference(list_1))

②数学表示

print("a^list_1:",a^list_1)

运行结果:

6.判断是不是相交

list_3=set([50,30,60])
print("isdisjoint:",a.isdisjoint(list_3)) #判断两个集合之间的关系是不是相交,如果相交返回False
print("isdisjoint:",a.isdisjoint(list_2))

运行结果:

三、集合的操作

1.添加数据

添加一项:

a.add("abc")   #添加一项

添加多项:

a.update([20,30,90])

2.删除数据

①remove()方法

a.remove("abc") #删除字符“abc”

②pop()方法

print(a.pop())  #随机删除,并返回删除的值

③discard()方法

a.discard(30)   #删除数据

3.获取集合的长度

print(len(a)) #集合 a 的长度

4.判断数据是否是集合的成员

print(30 in a)           #判断30是否是集合a的成员(列表、字典、集合、字符串都可以用这种方法来判断)
print(30 not in a) #判断30是否不是集合a的成员

初学Python——集合及其运算的更多相关文章

  1. Python集合及其运算

    目录 集合(set) 集合的创建 集合的操作 集合的运算 子集与父集 集合(set) 集合是由不同可hash的值组成的,里面所有的值都是唯一的,也是无序的 集合的创建 >>>set_ ...

  2. python集合的运算

    &  交集  | 并集    - 差集  ^ 异或集 # 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果 # 创建两个集合 s = {1,2,3,4,5} s2 = {3,4,5, ...

  3. day14 Python集合关系运算交,差,并集

    low逼写法,没用集合 python_1 = ['charon','pluto','ran'] linux_1 = ['ran','xuexue','ting'] python_and_linux = ...

  4. python 集合的运算

    x = frozenset([, , , , ]) y = frozenset([, , , , ]) #如果x与y没有公共元素,返回true print(x.isdisjoint(y)) #返回x与 ...

  5. Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数

    一.上节课的重点回顾: 1.类名加括号其实就是执行类的__init__方法: 2.int a.创建方式 n1 = 123 #根据int类创建了一个对象 n2 = int(123) #根据int类创建一 ...

  6. 初学Python(四)——set

    初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...

  7. 初学Python(一)——数据类型

    初学Python(一)——数据类型 初学Python,主要整理一些学习到的知识点,这次是数据类型. #-*- coding:utf-8 -*- #整数 print 1 #浮点数=小数 print 1. ...

  8. 初学python之感悟

    python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...

  9. python集合类型

    集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...

随机推荐

  1. es6 语法 (数组扩展)

    { let arr = Array.of(3, 4, 7, 9, 11); console.log('arr', arr); //[3,4,7,9,11] let empty = Array.of() ...

  2. JavaScript Hoisting(提升)

    Hoisting 是指 js 在执行代码前,默认会将变量的声明和函数的声明,提升到当前作用域顶端的行为. 这里要注意一下,只提升声明,例如: console.log(a); var a = 10; / ...

  3. CSS3属性animation-play-state控制动画运行或暂停的技巧

    animation-play-state介绍 animation-play-state 属性规定动画正在运行还是暂停. div{ animation-play-state:paused; -webki ...

  4. BZOJ4407: 于神之怒加强版(莫比乌斯反演 线性筛)

    Description 给下N,M,K.求 感觉好迷茫啊,很多变换看的一脸懵逼却又不知道去哪里学.一道题做一上午也是没谁了,, 首先按照套路反演化到最后应该是这个式子 $$ans = \sum_{d ...

  5. 如何用ABP框架快速完成项目(7) - 用ABP一个人快速完成项目(3) - 通过微服务模式而不是盖楼式来避免难度升级和奥卡姆剃刀原理

    这节文章十分重要!十分重要!十分重要!   很多同学在使用ABP的过程中遇到很多问题, 花费了很多时间和精力都还无法解决, 就是卡在这节文章这里.   Talk is cheap, just show ...

  6. Activity切换的时候生命周期的变化

    之前在做笔试题的时候遇到一个问题:Activity A切换到ActivityB时,A和B的生命周期变化. 事实上,它们的生命周期变化是这样的: 1.A的onPause()方法被执行. 2.B的onCr ...

  7. swipe使用及竖屏页面滚动方法

    基于swipe4写了一个移动端的全屏滚动效果  但是图片始终不能自适应屏幕设备大小  这里记录一下 开始的时候要设置  移动端配置 <meta name="viewport" ...

  8. 口碑订单,ERP本地加/退菜无法回流至手机端的解决办法-订单金额不统一erp本地加菜H5没有

    关于 口碑订单,ERP本地加/退菜无法回流至手机端的解决办法-订单金额不统一erp本地加菜H5没有 1. 2. 3. PS:是正餐后付的务必要选择口碑后付 完成以上设置即可

  9. Oracle笔记----oracle数字类型number自增

    创建序列 create sequence seq_student start increment maxvalue nominvalue nocycle nocache; 创建触发器 create o ...

  10. mssql sqlerver 脚本 计算数据表的结余数的方法分享

    转自:http://www.maomao365.com/?p=5710 摘要:今天接到一个需求,有一张数据表,记录的是消费明细数据,现在需要做一个累计结余,记录每次的数据结余合计,下文将展示一种sql ...