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 sqlobject(mysql)中文乱码解决方法
Nov 14 Python
Python编程入门的一些基本知识
May 13 Python
python生成验证码图片代码分享
Jan 28 Python
python在每个字符后添加空格的实例
May 07 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
python调用staf自动化框架的方法
Dec 26 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
python基础 range的用法解析
Aug 23 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
Python Pygame实现俄罗斯方块
Feb 19 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中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
PHP面向对象详解(三)
2015/12/07 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
教育系毕业生中文求职信范文
2013/10/06 职场文书
预备党员思想汇报范文
2013/12/29 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
英文商务邀请函范文
2015/01/31 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书