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 相关文章推荐
Python中生成器和yield语句的用法详解
Apr 17 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
python3读取csv和xlsx文件的实例
Jun 22 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
Python实现括号匹配方法详解
Feb 10 Python
python 生成任意形状的凸包图代码
Apr 16 Python
Python logging模块原理解析及应用
Aug 13 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 header功能的使用
2013/10/28 PHP
php strnatcmp()函数的用法总结
2013/11/27 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
DWR Ext 加载数据
2009/03/22 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
vue实现简单全选和反选功能
2020/09/15 Javascript
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python修改字典键(key)的方法
2019/08/05 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
一道SQL面试题
2012/12/31 面试题
中专生自我鉴定范文
2014/02/02 职场文书
《分一分》教学反思
2014/04/13 职场文书
无房证明范本
2014/09/17 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
MySQL的安装与配置详细教程
2021/06/26 MySQL
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
JavaScript实现优先级队列
2021/12/06 Javascript
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python