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正则表达式匹配HTML页面编码
Apr 08 Python
Django框架中方法的访问和查找
Jul 15 Python
深入解析Python的Tornado框架中内置的模板引擎
Jul 11 Python
python脚本替换指定行实现步骤
Jul 11 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
django 解决manage.py migrate无效的问题
May 27 Python
python得到windows自启动列表的方法
Oct 14 Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 Python
Python Process多进程实现过程
Oct 22 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
php二维数组排序详解
2013/11/06 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
Python urlopen()函数 示例分享
2014/06/12 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
python url 参数修改方法
2018/12/26 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python让函数不返回结果的方法
2020/06/22 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
货款欠条范本
2015/07/03 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python