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 相关文章推荐
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
python实现计算倒数的方法
Jul 11 Python
Python中动态创建类实例的方法
Mar 24 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
基于Python开发chrome插件的方法分析
Jul 07 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
Python tkinter界面实现历史天气查询的示例代码
Aug 23 Python
用python写PDF转换器的实现
Oct 29 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 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
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
python有证书的加密解密实现方法
2014/11/19 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
Python 串口读写的实现方法
2019/06/12 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
浅析matlab中imadjust函数
2020/02/27 Python
Python 字符串池化的前提
2020/07/03 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
护理学毕业生自荐信
2013/10/02 职场文书
教师实习期自我鉴定
2013/10/06 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
夫妻吵架保证书
2015/05/08 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL