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 Sleep休眠函数使用简单实例
Feb 02 Python
python获取本地计算机名字的方法
Apr 29 Python
Python中的super用法详解
May 28 Python
Python中atexit模块的基本使用示例
Jul 08 Python
Python多线程爬虫简单示例
Mar 04 Python
python的文件操作方法汇总
Nov 10 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
什么是Python包的循环导入
Sep 08 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Windows下python2.7.8安装图文教程
2016/05/26 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
python线程的几种创建方式详解
2019/08/29 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
tensorboard显示空白的解决
2020/02/15 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
python操作链表的示例代码
2020/09/27 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
拓展培训心得体会
2014/01/04 职场文书
经销商培训邀请函
2014/01/21 职场文书
精彩的广告词
2014/03/19 职场文书
生日宴会主持词
2014/03/20 职场文书
代办社保委托书范文
2014/10/06 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
小学体育组工作总结2015
2015/07/21 职场文书