Python 集合set概念和操作
# 集合
# 概念
# 无序的, 不可随机访问的, 不可重复的元素集合
# 与数学中集合的概念类似,可对其进行交、并、差、补等逻辑运算
# 分为可变集合和非可变集合
# set
# 为可变集合
# 增
# 删
# 改
# frozenset
# 不可变集合
# 创建好之后, 无法增删改
# 定义
# 可变集合set
# s = {1,2,3,4}
# s = set(iterable)
# 其中iterable可以是字符串、列表、元组、字典等
# 但是为dict时,只会获取提Key作为set的元素
# 集合推导式
# s = set(x**2 for x in range(1, 10) if x % 2 == 0)
# s = {推导式}
# 不可变集合frozenset
# fs = frozenset(iterable)
# 其中iterable可以是字符串、列表、元组、字典等
# 但是为dict时,只会获取提Key作为set的元素
# 集合推导式
# s = frozenset(x**2 for x in range(1, 10) if x % 2 == 0)
# 注意
# 1. 创建一个空集合时, 需要使用set() 或者 frozenset(), 不能使用 s = {}
# 会被识别成为字典
# 2. 集合中的元素, 必须是可哈希的值
# 如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,
# 那么它就是可哈希的(hashable)的
# 暂时理解为 不可变类型
# 3. 如果集合中的元素值出现重复, 则会被合并为1个
# 常用操作
# 单一集合操作
# 可变集合
# 增
# s.add(element)
# 注意:
# 必须保证添加的元素是可哈希的值
# 删
# s.remove(element)
# 指定删除set对象中的一个元素
# 如果集合中没有这个元素,则返回一个错误
# s.discard(element)
# 指定删除集合中的一个元素
# 若没有这个元素,则do nothing
# s.pop(element)
# 随机删除并返回一个集合中的元素
# 若集合为空,则返回一个错误
# s.clear()
# 清空一个集合中的所有元素
# 改
# 元素为不可变类型, 不能修改
# 查
# 无法通过索引或key进行查询
# 1. 通过 for in 进行遍历
s = {1, 2, 3}
for v in s:
print(v) # 2. 通过迭代器进行访问
its = iter(s) #生成迭代器
print(next(its)) #
print(next(its)) #
print(next(its)) # its = iter(s) #需要从新生成,因为上面的next已经移动指针到最后
#for in 迭代器
for v in its:
print(v) # 不可变集合
# 不能增删改
# 查
# 1. 通过 for in 进行遍历
# 2. 通过迭代器进行访问
# 集合之间操作
# 交集
# intersection(Iterable)
# 字符串
# 只判定字符串中的非数字
# 列表
# 元组
# 字典
# 值判定key
# 集合
# ...
# 逻辑与 '&'
# intersection_update(…)
# 交集计算完毕后, 会再次赋值给原对象
# 会更改原对象
# 所以, 只适用于可变集合
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6}
result = s1.intersection(s2)
print(result , type(result)) #{4, 5} <class 'set'>
result = s1 & s2
print(result , type(result)) #{4, 5} <class 'set'> # 并集
# union()
# 返回并集
# 逻辑或 '|'
# 返回并集
# update()
# 更新并集 # 差集
# difference()
# 算术运算符减 ‘-‘
# difference_update() # 判定
# isdisjoint()两个集合不相交
# issuperset()一个集合包含另一个集合
# issubset()一个集合包含于另一个集合
# 注意
# 可变与不可变集合混合运算, 返回结果类型以运算符左侧为主
Python 集合set概念和操作的更多相关文章
- python集合(set)操作
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...
- Python 字典Dict概念和操作
# 字典概念:无序的, 可变的键值对集合 # 定义 # 方式1 # {key: value, key: value...} # 例如 # {"name": "xin&qu ...
- python redis基本概念简单操作
转自:http://www.cnblogs.com/melonjiang/p/5342383.html 一.redis redis是一个key-value存储系统.和Memcached类似,它支持存储 ...
- Python 集合(set)类型的操作——并交差
介绍 python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并.交.差.对称差等. sets 支持 x in set. len(set).和 for x in ...
- Python 元组Tuple概念和操作
# 元组概念:有序的不可变的元素集合 # 和列表的区别就是, 元组元素不能修改 # 定义 # 一个元素的写法 # (666,) t = (666,) #正确写法 t = (666) #错误写法,括号当 ...
- python集合的分类与操作
如图: 集合的炒作分类: 确定大小 测试项的成员关系 遍历集合 获取一个字符串表示 测试相等性 连接两个集合 转换为另一种类型的集合 插入一项 删除一项 替换一项 访问或获取一项
- Python 集合内置函数大全(非常全!)
Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员 s ...
- Python 集合set添加删除、交集、并集、集合操作符号
在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1. ...
- Python集合类型的操作与应用
Python集合类型的操作与应用 一.Python集合类型 Python中的集合类型是一个包含0个或多个数据项的无序的.不重复的数据组合,其中,元素类型只能是固定数据类型,如整数.浮点数.字符串.元组 ...
随机推荐
- Unity3D学习笔记——GUI高级组件
Unity3D中的高级控件都是由GUI类引出的,高级控件是由系统实现的,所以效率很高,但也可以自己实现,优点是任意修改灵活性高. 一:Label控件:用于展示一段文字的控件.可以输入字符串,也可以是贴 ...
- iOS 实现从后台切换到前台-复制分享宝贝内容,打开淘宝APP,自动弹出宝贝提示信息
- (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"\n ===> 程序重新激活 !&q ...
- windown安装bloomFilter
个人博客:https://blog.sharedata.info/ 最近在研究python爬虫,需要在windown中安装bloomFilter来处理网页的去重问题,在window中安装python然 ...
- No image!使用border-color属性来制作小三角形
border属性在项目中使用的还是蛮频繁的.例如页签.按钮这样的. border简写属性是按照如下属性设置的: border:border-width/border-style/border-colo ...
- Cocos2d-x Lua中实例:帧动画使用
下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. 帧动画实例 下面我们再看看具体的程序代码,首 ...
- 1366 贫富差距(floyed)
1366 贫富差距 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有一 ...
- Using InfluxDB in Grafana,influxDB在grafana中使用
grafana带有功能丰富的数据源插件influxDB.支持丰富的查询编辑器.注释和templating(模版)查询. 增加数据源(Adding the data source) 点击顶部Grafan ...
- hive表信息查询:查看表结构、表操作等
转自网友的,主要是自己备份下 有时候不记得! 问题导读:1.如何查看hive表结构?2.如何查看表结构信息?3.如何查看分区信息?4.哪个命令可以模糊搜索表 1.hive模糊搜索表 show tabl ...
- 【python】-- Django路由系统(网址关系映射)、视图、模板
Django路由系统(网址关系映射).视图.模板 一.路由系统(网址关系映射) 1.单一路由对应: 一个url对应一个视图函数(类) urls.py: url(r'^test', views.test ...
- Python菜鸟之路:Django CSRF跨站请求伪造
前言 CSRF,Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对 ...