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 相关文章推荐
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
使用python实现接口的方法
Jul 07 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
django的ORM模型的实现原理
Mar 04 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
利用Python校准本地时间的方法教程
Oct 31 Python
python集合删除多种方法详解
Feb 10 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
Python matplotlib可视化实例解析
Jun 01 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 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使用Pthread实现的多线程操作实例
2015/11/14 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
jupyter notebook 重装教程
2020/04/16 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
后勤园长自我鉴定
2013/10/17 职场文书
西式婚礼证婚词
2014/01/12 职场文书
小学教师国培感言
2014/02/08 职场文书
家长寄语大全
2014/04/02 职场文书
2014年调度员工作总结
2014/11/19 职场文书
店长岗位职责
2015/02/11 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android