python set集合使用方法解析


Posted in Python onNovember 05, 2019

这篇文章主要介绍了python set集合使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

定义

定义:在{}中用逗号隔开,集合具备以下3个特点:

1.每个元素必须是不可变类型

2.集合内没有重复元素

3.集合内元素无序

my_set = {1, 2, 3, 4}
# 本质上
my_set = set({1, 2, 3, 4})

# 注意1:列表是索引对应值,字典是key对应值,均可以取得单个值.
# 而集合类型既没有索引也没有key值相对应,所以无法取得单个的值.对集合来说
# 主要功能在于去重与关系元素,没有取出单个值的需求
# 注意2:{}既被用于定义字典也被用于定义集合.但是字典内的元素必须以key:value的形式.
# 如何准确的定义一个空集合?
my_set = {}
print(type(my_set))
my_set = set()
print(type(my_set))>>>
<class 'dict'>
<class 'set'>

类型转换

但凡能被for循环遍历输出的值(输出的值不能为可变数据类型)

my_set = set([1, 2, 3, 4, 5])  >>>{1, 2, 3, 4, 5}
my_set = set('string')     >>>{'t', 's', 'g', 'i', 'r', 'n'}
my_set = set((1, 2, 3, 4, 1))  >>>{1, 2, 3, 4}
my_set = set({'name':'yyh'})  >>>{'name'}

关系运算

friends1 = {'Albert', 'Tony', 'John', 'Egon', 'Sean'}
friends2 = {'Sean', 'Sor', 'Egon'}
print(friends1 | friends2) # 求合集
print(friends1 & friends2) # 求交集
print(friends1 - friends2) # 求差集 friends1中独有的
print(friends2 - friends1) # 求差集 friends2中独有的
print(friends1 ^ friends2) # 对称差集(去掉共有的好友后的合集)
print(friends1 == friends2) # 集合是否相等

print({1, 2, 3} >= {1, 2, 3}) # 包含关系
print({1, 2, 3} > {1, 2}) # 真包含关系
print({1, 2} < {1, 2, 3}) # 真子集
print({1, 2, 3} <= {1, 2, 3}) # 子集

去重

# 集合去重复有局限性,仅适用于不可变数据类型
# 集合本身是无序的, 去重之后无法保留原来的顺序
my_list = ['a', 'b', 1, 'a', 'b']
my_set = set(my_list)  # 列表转集合
print(my_set)
my_list = list(my_set) # 集合转列表
print(my_list)     # 去除了重复,但是打乱了顺序
# 针对可变类型,并且保证顺序则需要自己写代码实现
my_list = [
  {'name': 'lili', 'age': 18, 'sex': 'male'},
  {'name': 'jack', 'age': 73, 'sex': 'male'},
  {'name': 'tom', 'age': 20, 'sex': 'female'},
  {'name': 'lili', 'age': 18, 'sex': 'male'},
  {'name': 'lili', 'age': 18, 'sex': 'male'},
]
new_list = []
for i in my_list:
  if i not in new_list:
    new_list.append(i)

print(new_list)

练习

pythons = {'jason', 'egon', 'kevin', 'ricky', 'gangdan', 'biubiu'}
linuxs = {'kermit', 'tony', 'gangdan'}

print(f'即报名了python又报名了linux的学员有{pythons & linuxs}')
print(f'所有报名的学员{pythons | linuxs}')
print(f'只报名了python的学员{pythons - linuxs}')
print(f'只报名了其中一门的学员{pythons ^ linuxs}')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
python 循环遍历字典元素的简单方法
Sep 11 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
python正则实现提取电话功能
Feb 24 Python
django js实现部分页面刷新的示例代码
May 28 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 Python
python实践项目之监控当前联网状态详情
May 23 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
Python操作qml对象过程详解
Sep 26 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
python中Mako库实例用法
Dec 31 Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 #Python
python中删除某个元素的方法解析
Nov 05 #Python
Django 框架模型操作入门教程
Nov 05 #Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 #Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 #Python
Python imread、newaxis用法详解
Nov 04 #Python
Python使用微信接入图灵机器人过程解析
Nov 04 #Python
You might like
关于PHP语言构造器介绍
2013/07/08 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python抽象类的新写法
2015/06/18 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
浅谈Django REST Framework限速
2017/12/12 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
平民服装店创业计划书
2014/01/17 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
施工员岗位职责
2015/02/10 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers