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 相关文章推荐
netbeans7安装python插件的方法图解
Dec 24 Python
Python多进程并发(multiprocessing)用法实例详解
Jun 02 Python
python实现中文分词FMM算法实例
Jul 10 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
python内置数据类型之列表操作
Nov 12 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
python如何判断IP地址合法性
Apr 05 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
Apr 22 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
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
javascript中的几个运算符
2007/06/29 Javascript
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
模拟select的代码
2011/10/19 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
简单解析Django框架中的表单验证
2015/07/17 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python实现堆排序的实例讲解
2020/02/21 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
客服文员岗位职责
2013/11/29 职场文书
简历自我评价怎么写好呢?
2014/01/04 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
教师师德承诺书
2014/03/26 职场文书
超市活动计划书
2014/04/24 职场文书
上课玩手机的检讨书
2014/10/01 职场文书