集合的定义:

由不同元素组成、一组无序排列的可hash值、集合中元素必须是不可变类型

  集合的定义方式:
  由大括号组成;
  每个元素用逗号分隔;
  元素书写不是key-value形式;

集合是由不同元素组成,如果在集合中使用相同元素,会自动处理
例如:

s={1,2,3,3,44,33,33,4,4,5,5,7}
type(s)
print(s)
返回结果:
{33, 2, 3, 4, 5, 1, 7, 44}

集合是无序的:
例如:

s={'a','h','o','n','b','d','c'}
for item in s:
print(item)
返回结果:
n
o
c
h
d
a
b

集合的书写定义格式:
格式1:
  s={element1,element2,element3...}
  element都为不变类型

格式2:
  s=set(<可迭代类型>)
  可迭代类型:字符串、列表、元组、字典

例如:定义格式2

s=set([1,2,3,"hello"]) #遍历列表,把每个元素当作集合中的一个值
print(s)
返回结果:
{1, 2, 3, 'hello'} s=set((1,2,3))
print(s)
返回结果:
{1, 2, 3} s=set({'k1':'v1','k2':'v2'}) #以逗号分隔,遍历字典,得到值后不再继续遍历
print(s)
返回结果:
{'k2', 'k1'} s=set('hello')
print(s)
返回结果:
{'e', 'o', 'h', 'l'} s=set("hello")
print(s)
返回结果:
{'e', 'o', 'h', 'l'}

********集合的方法:********

1.add()方法:向集合中添加元素

s={1,2,3}
s.add('s')
print(s)
返回结果:
{1, 2, 3, 's'}

2.clear()方法:清空集合

3.copy()方法:复制集合

4.pop()方法:从集合中随机删除一个元素,不特定的顺序删除
  pop方法可以把删除的元素赋值给变量
例如:

s={'sss',1,2,3}
v=s.pop()
print(v,s)
返回结果:
1 {2, 3, 'sss'}

5.remove()方法:从集合中指定删除一个元素
格式:
  S.remove(<element>)
如果指定的element在集合中不存在,则报错
例如:

s={'sss',1,2,3}
s.remove('sss') #注意要使用引号
print(s)
返回结果:
{1, 2, 3}

6.discard()方法:指定元素删除,如果指定元素不存在,则不会报错

********集合的关系操作及其方法********

1.
intersecion()方法:获取2个集合的交集
格式1:
  S1.intersection(<S2>)
格式2:
  S1&S2
例如:

python_l=['lcg','szw','zjw']
linux_l=['lcg','szw']
p_s=set(python_l)
l_s=set(linux_l)
v=p_s.intersection(l_s)
print(v)
返回结果:
{'szw', 'lcg'} 或者
v=p_s&l_s
print(v)

2.
union()方法:获取2个集合的并集,组成一个集合,并且去重
格式1:
  S1.union(<S2>)
格式2:
  S1|S2
例如:

python_l=['lcg','szw','zjw']
linux_l=['lcg','szw']
p_s=set(python_l)
l_s=set(linux_l)
v=p_s.union(l_s)
print(v)
返回结果:
{'zjw', 'lcg', 'szw'} 或者
v=p_s|l_s
print(v)

3.
difference()方法:生成2个集合的差集,表示在左面的集合中,只存在于左面集合,在右面集合没有的元素
格式1:
  S1.difference(<S2>)
格式2:
  S1-S2
例如:

python_l=['lcg','szw','zjw']
linux_l=['lcg','szw']
p_s=set(python_l)
l_s=set(linux_l)
v=p_s.difference(l_s)
print(v)
返回结果:
{'zjw'} 或者
v=p_s-l_s
print(v)

4.
symmetric_difference()方法:集合的交差补集
格式1:
  S1.symmetric_difference(<S2>)
格式2:
  S1^S2
例如:

python_l=['lcg','szw','zjw']
linux_l=['lcg','szw']
p_s=set(python_l)
l_s=set(linux_l)
v=p_s.symmetric_difference(l_s)
print(v)
返回结果:
{'zjw'}

5.
difference_update()方法:两个集合做完差集(difference)之后,把结果更新回去
格式
  S1.difference_update(<S2>)
  S1与S2作差集,然后把结果赋值给S1

例如:

python_l=['lcg','szw','zjw']
linux_l=['lcg','szw']
p_s=set(python_l)
l_s=set(linux_l)
p_s.difference_update(l_s)
print(p_s)
返回结果:
{'zjw'}

6.
intersection_update()方法:两个集合做交集(intersection),把结果更新回去
格式:
  S1.intersection_update(S2)
  S1与S2作交集,然后把结果赋值给S1
例如:

python_l=['lcg','szw','zjw']
linux_l=['lcg','szw']
p_s=set(python_l)
l_s=set(linux_l)
p_s.intersection_update(l_s)
print(p_s)
返回结果:
{'lcg', 'szw'}

7.
isdisjoint()方法:如果两个集合交集之后,没有结果,返回True,就是两个集合没有交集就返回True
格式:
  S1.isdisjoint(S2)
例如:

s1={1,2}
s2={3,5}
v=s1.isdisjoint(s2)
print(v)
返回结果:
True s1={1,2,3,}
s2={2,4,9}
v=s1.isdisjoint(s2)
print(v)
返回结果:
False

8.
issubset()方法:返回一个集合是否是另一个集合的子集合,是子集合返回True,否则返回False
格式:
  S1.issubset(S2)
例如:

s1={1,2}
s2={1,2,3}
v=s1.issubset(s2)
print(v)
返回结果:
True

9.
issuperset()方法:返回一个集合是否是另一个集合的父集、超集,是返回True,否则返回False
格式:
  S1.issuperset(S2)
例如:

s1={1,2}
s2={1,2,3}
v=s2.issuperset(s1)
print(v)
返回结果:
True

10.
update()方法:将可迭代对象(字符串、元组、列表、集合)做并集,把结果更新回去
格式:
  S1.update(<可迭代对象>)
  作并集之后,把结果赋值给S1

例如:

s1={1,2}
s2={1,2,3}
s1.update(s2)
print(s1)
返回结果:
{1, 2, 3}

python之集合及其方法---整理集的更多相关文章

  1. python之字典及其方法---整理集

    字典 特点: 使用逗号分隔的key:value形式: 使用大括号括起来: key-value的键值对中,value部分可以是任意类型: 列表.字典不能做为字典的key: 字典是无序的,哪个key-va ...

  2. python之元组及其方法---整理集

    元组: 区别:与列表类似,是对列表的二次加工:用小括号包括起来:元素不可修改:不可增加.删除 技巧:创建元组的时候,一般在最后一个元素后面加一个逗号:为了与方法区分:并且这个逗号不算元素例如: tu= ...

  3. python之列表及其方法---整理集

    列表类,类名是list 通过list类创建对象,使用中括号 列表特性: 使用中括号括起来 中间用逗号分隔每个元素 元素可以是数字.字符串.布尔值.列表 列表中可以嵌套列表 列表中每个元素的下标从0开始 ...

  4. python之字符串及其方法---整理集

    字符串方法 1.capitalize方法:字符串首字母大写 举例: test="alex" v=test.capitalize() print(v) 返回结果: Alex 2.ca ...

  5. java 调用 python 的几种方法整理

    参考:   https://blog.csdn.net/secondlieutenant/article/details/79000265

  6. Python爬虫防封杀方法集合

      Python爬虫防封杀方法集合     mrlevo520 2016.09.01 14:20* 阅读 2263喜欢 38       Python 2.7 IDE Pycharm 5.0.3 前言 ...

  7. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  8. 编程中遇到的Python错误和解决方法汇总整理

    这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下   开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析, ...

  9. Python的集合

    1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...

随机推荐

  1. problem: 记一次聊天框的表情包弹框不显示的找问题过程

    左边是列表,包含了群和成员,右侧是聊天窗口.点击群列表,右侧显示群聊窗口,点击学员,右侧显示私聊窗口. 群聊窗口和私聊窗口是不同的组件,但是窗口中的子组件,例如窗口的头部.中间内容部分.输入框都是复用 ...

  2. [UE4]在Character中使用Add Spline Mesh Component,关于Transform.Mobility

    一.因为Character是可移动的,因此也需要把Add Spline Mesh Component的Transform.Mobility设置为Movable 二.不然就会得到类似这样的提示.错误信息 ...

  3. Android中刷新Invalidate和postInvalidate的区别

    Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用.Android提供了Inval ...

  4. Apartment 2019:(1)创建墙体

    墙体建模 The Walls 软件:SketchUp Pro 2017 墙体模型 建模过程: 一.导入图像并调整大小 导入公寓平面参考图/户型图(来自网络),导入为图像.连续三击鼠标左键,选中所有的几 ...

  5. Angular:在应用初始化时运行代码

    想象一下,您的应用需要一些动态配置信息,这些信息在应用启动之前需要动态获取,并在应用运行中使用. 显然不能直接写道静态配置文件中,但是从客户端发出的请求又是一个异步请求,如何协调这个问题呢? 这里,我 ...

  6. flutter 底部按钮切换页面

    界面如图: 我们就从上节里面的app.dartt修改 目录:lib lib/story 其它两个目录一样. 图片配置一下 app.dart import 'package:flutter/materi ...

  7. vue富文本编辑器

    基于webpack和vue 一.npm 安装 vue-quill-editor 二.在main.js中引入 import VueQuillEditor from 'vue-quill-editor'/ ...

  8. Angular6 Observable.fromEvent error: “Invalid event target”

    今天在angular6项目中写了个拖拽功能,但是控制台报错,如图 后来在控制台打出发现,原来是 ngOnInit( ) 这个生命周期里,页面的dom节点还未产生,还只是null. 改为用 ngAfte ...

  9. sql注入、csrf

    ◎sql注入产生的原因?又如何防御sql注入? SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用 ...

  10. AET PN结

    电场方向 电场方向和正电荷受力方向相同 飘移运动和扩散运动 多子和电场方向互相抵制,而多子是扩散运动,而对少子则是促进作用,当扩散和漂移达到动态平衡时,我们称PN结形成 PN结特性 单项导电性