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脚本将绝对url替换为相对url的教程
Apr 24 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
May 21 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
使用python接入微信聊天机器人
Mar 31 Python
学习和使用python的13个理由
Jul 30 Python
wxPython实现画图板
Aug 27 Python
Python函数基本使用原理详解
Mar 19 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
Python Unittest原理及基本使用方法
Nov 06 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 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以mysqli方式连接类完整代码实例
2014/07/15 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
jQuery知识点整理
2015/01/30 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
python批量生成本地ip地址的方法
2015/03/23 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
外语专业毕业生自我评价分享
2013/10/05 职场文书
小区门卫管理制度
2014/01/29 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
合作合同协议书范本
2015/01/27 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL