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访问纯真IP数据库的代码
May 19 Python
python中__call__方法示例分析
Oct 11 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
python实现微信自动回复功能
Apr 11 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
python如何实现视频转代码视频
Jun 17 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Python属性和内建属性实例解析
Jan 14 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 Python
详解Python模块化编程与装饰器
Jan 16 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 事务处理数据实现代码
2010/05/13 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
thinkphp分页集成实例
2017/07/24 PHP
js 自定义的联动下拉框
2010/02/07 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python设置环境变量的作用和实例
2019/07/09 Python
对Django url的几种使用方式详解
2019/08/06 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
印度在线购物网站:Paytmmall
2019/07/24 全球购物
员工培训心得体会
2013/12/30 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
倡议书格式模板
2014/05/13 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
邀请书格式范文
2015/02/02 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书