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的collections模块中的OrderedDict有序字典
Jul 07 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
在Django同1个页面中的多表单处理详解
Jan 25 Python
python解决字符串倒序输出的问题
Jun 25 Python
用python实现刷点击率的示例代码
Feb 21 Python
Python时间和字符串转换操作实例分析
Mar 16 Python
python join方法使用详解
Jul 30 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
如何在mac下配置python虚拟环境
Jul 06 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
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python接口自动化测试的实现
2020/08/28 Python
银行见习期自我鉴定
2014/01/29 职场文书
开办大学饮食联盟创业计划书
2014/01/29 职场文书
设计师个人求职信范文
2014/02/02 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
大学生两会精神学习心得体会
2014/03/10 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技