python集合能干吗


Posted in Python onJuly 19, 2020

一、什么是集合:

集合(set)是一个无序的不重复元素序列。

重点:集合里边的元素是不可重复的并且集合内的元素还是无序的。

集合是一个可变容器

集合内的数据对象都是唯一的(不能重复)

集合是可迭代对象

集合相当于是只有键没有值得字典(键就是集合中的数据)

集合内的元素可以设置不可变类型frozenset()

集合pop()删除的时候类似队列先进先出 ,是类似。

也就是说,集合可以像元组一样,设置不可改变的类型;也可以默认像字典,列表一样,可以迭代改变;同时集合里的元素可以是列表,元组,字典。

二、为什么要使用集合

集合的特点决定了它简单,高效,速度快。

例如当用列表去重的时候:

list1=[1,2,3,4]
list2=[3,4,5,6]
list3=[]
for i in list1:
  if i in list2:
    list3.append(i)
print(list3)

利用集合去重:

my_list = [1, 2, 3, 4, 2, 3, 1, 2, 2]
# 转化为集合
my_set = set(my_list)
print(list(my_set))

# 结果

[1, 2, 3, 4]

三、集合可以进行如下基本操作:

1、 创建字典

可使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

>>> my_set = set(('apple',))
>>> my_set
{'apple'}

2、添加元素(add(),update())

# add 作为一个整体添加到集合中
my_set = set()
my_set.add("abc")
print(my_set)  
#update 是把要传入的元素拆分,做为个体传入到集合中
my_set = set()
my_set.update("abc")
print(my_set)

3、删除元素(remove(),pop(),discard())

#remove 如果集合种有,则直接删除;如果没有,程序报错 格式:集合名.remove(元素)
my_set = {11, 13, 15} 
my_set.remove(13)
print(my_set) my_set.remove(131)
print(my_set)  
#pop 随机删除集合中的元素 如果集合中没有元素则程序报错
my_set = {11, 13, 15}
my_set.pop()
print(my_set)  
#discard 如果集合中元素存在,直接删除; 如果元素不存在 不做任何操作  格式: 集合名.discard(元素)
my_set = {11, 13, 15} 
my_set.discard(13)
print(my_set) 
my_set.discard(131)
print(my_set)

4、交集( & )

set1 = {9, 2, 3, 4}
set2 = {3, 4, 5, 16}
new_set = set1 & set2
print(new_set)
# result {3, 4}

5、 并集( | )

set1 = {1, 2, 3, 4}
set2 = {3, 5, 5, 6}
new_set = set1 | set2
print(new_set)
# result {1, 2, 3, 4, 5, 6}

6、 差集(-)

项在前一个集合中,但不在后一个集合中。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 - set2
print(new_set)
# result {1, 2}

7、对称差集( ^ )

即项在前一个集合或后一个集合中,但不会同时出现在二者中。即交集减去并集。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 ^ set2
print(new_set)
# result {1,2,5,6}

8、子集判断

set1 = { 3, 4}
set2 = {3, 4, 5, 6}
# 判断set1是否是set2的子集
print(set1.issubset(set2))
# result True

9、父集判断

set1 = { 3, 4}
set2 = {3, 4, 5, 6}
# 判断set1是否是set2的父集
print(set1.issuperset(set2))
# result False

10、迭代和枚举

s={34,56,76,34,56,54,43,23,56}
for i in s:
  print(i) ##迭代输出其内容
for i,v in enumerate(s):
  print('index: %s,value: %s' %(i,v))
"""
result:
index: 0,value: 34
index: 1,value: 43
index: 2,value: 76
index: 3,value: 54
index: 4,value: 23
index: 5,value: 56
"""

可观察出,集合会自动过滤掉相同元素。

知识点扩展

创建集合

1.使用直接量创建集合

注意:使用直接量不能创建空集合

s = {1,2,3}

s = {"hello",3.14,True,(2019,02,17)}

2.使用构造函数创建集合 - set

s = set() #创建空集合

s = set(iterable) #使用可迭代对象创建一个集合

s = set("ABC") # s = {'A','B','C'}

s = set([1,0,3.14,"hello"]) # s = {1,0,3.14,'hello'}

... ...

到此这篇关于python集合能干吗的文章就介绍到这了,更多相关python集合的作用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python操作日期和时间的方法
Mar 11 Python
Python生成验证码实例
Aug 21 Python
python中readline判断文件读取结束的方法
Nov 08 Python
python获取当前日期和时间的方法
Apr 30 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
详解python中的线程
Feb 10 Python
Python3安装Pillow与PIL的方法
Apr 03 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
浅析Python的命名空间与作用域
Nov 25 Python
python编程的核心知识点总结
Feb 08 Python
python如何建立全零数组
Jul 19 #Python
解决python中0x80072ee2错误的方法
Jul 19 #Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 #Python
python中加背景音乐如何操作
Jul 19 #Python
python实现最短路径的实例方法
Jul 19 #Python
python等待10秒执行下一命令的方法
Jul 19 #Python
python怎么删除缓存文件
Jul 19 #Python
You might like
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
vue实现文件上传功能
2018/08/13 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python快速排序代码实例
2013/11/21 Python
python实现哈希表
2014/02/07 Python
python类参数self使用示例
2014/02/17 Python
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python深度优先算法生成迷宫
2018/01/22 Python
python re模块的高级用法详解
2018/06/06 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
幼儿园教师演讲稿
2014/05/06 职场文书
社区戒毒工作方案
2014/06/04 职场文书
房贷工资证明范本
2015/06/12 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
python中对列表的删除和添加方法详解
2022/02/24 Python
python 闭包函数详细介绍
2022/04/19 Python