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执行shell获取硬件参数写入mysql的方法
Dec 29 Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
Python中的推导式使用详解
Jun 03 Python
Python中的urllib模块使用详解
Jul 07 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
使用Python设计一个代码统计工具
Apr 04 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
Mar 04 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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 UTF8编码内的繁简转换类
2009/07/20 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
php实现session共享的实例方法
2019/09/19 PHP
简单的js分页脚本
2009/05/21 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
详解python开发环境搭建
2016/12/16 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
python 三元运算符使用解析
2019/09/16 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Python with语句和过程抽取思想
2019/12/23 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
linux比较文件内容的命令是什么
2015/09/23 面试题
农村婚庆司仪主持词
2014/03/15 职场文书
动员大会主持词
2014/03/20 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2015年服务员工作总结
2015/04/08 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android