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 相关文章推荐
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
零基础小白多久能学会python
Jun 22 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 Python
教你怎么用python实现字符串转日期
May 24 Python
Python实现列表拼接和去重的三种方式
Jul 02 Python
Python如何快速找到多个字典中的公共键(key)
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
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
详解Django通用视图中的函数包装
2015/07/21 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
简单易懂的python环境安装教程
2017/07/13 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
《理想的风筝》教学反思
2014/04/11 职场文书
亲子活动总结
2014/04/26 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
承诺函范文
2015/01/21 职场文书
文明礼貌主题班会
2015/08/14 职场文书
离婚协议书范文2016
2016/03/18 职场文书
Python中的pprint模块
2021/11/27 Python
python神经网络Xception模型
2022/05/06 Python
关于MySQL中explain工具的使用
2023/05/08 MySQL