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基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
python构建深度神经网络(续)
Mar 10 Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
Keras实现DenseNet结构操作
Jul 06 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
Python 内存管理机制全面分析
Jan 16 Python
Python 语言实现六大查找算法
Jun 30 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 for 循环语句使用方法详细说明
2010/05/09 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
推荐20家国外的脚本下载网站
2011/04/28 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
Python文件和目录操作详解
2015/02/08 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
关于python写入文件自动换行的问题
2018/06/23 Python
python ---lambda匿名函数介绍
2019/03/13 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
出国签证在职证明范本
2014/11/24 职场文书
运动会100米加油稿
2015/07/21 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
使用Redis实现实时排行榜功能
2021/07/02 Redis
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers