Python学习(四)数据结构 —— set frozenset
集合类型 set frozenset
赋值及去重
set 是一个无序不重复元素集,还有个frozenset 类型(顾明思议,就是不可改变元素的集合);
基本功能包括关系测试和消除重复元素;set支持& | - (交、并、差集) 等数学运算
set 赋值:非空集合由{}标识,逗号隔开元素; 注意,空集合表示为 set() 而不是 {} (这是dict);python 会对set自动去除重复
s = {} # 注意这是 dict类型
print(type(s))
s = set() # 空集合表示方法
print(type(s))
s = {1,1.0}
print(s) # 输出{1.0},可去重 int float类型不区分,输出float
s = [1,2,1,2,1,1,3]
s = set(s) # 强制转换成 set
print(s) # 同样去重了
同 list 相似,set 也有简单操作,如下:
s = {1,2,1,2,1,1,3,0}
print(s,len(s)) # len(s) 返回了set包含元素的个数(去重)
print((1.0 in s),(3 in s),(True in s),(False in s)) # 测试是否包含元素,注意0可以对应False,1可以对应True
print(True not in s)
交、并、差集运算
表示法: & | - ; 分别表示交集、并集、及非(具体意思请百度),无对应结果返回空集合,即 set() 示例如下:
a = {0,1,2}
b = {1,2,3}
print(a&b) # 交集
print(a|b) # 并集
print(a-b) # a差b
print(b-a) # b差a
a = {0,1,2}
b = {3,4,5}
print(a&b) # set()
一些函数也可作交、并、差运算,详细参见 python list、set 相关参考
增、删操作
s.add(elem) 增加;.remove(elem) .discard(elem) .pop() 删除;s.clear() 清空;详见下面实例
s = {0,1,2}
s.add(4) # .add(elem)
s.add(4.0)
s.add("")
print(s)
s.remove(0) # .remove(elem) 去除现有元素,如不存在,会 raise error
print(s)
# s.remove(0) # 报错
s = {0,1,2}
s.discard(0) # .discard(elem) 去除现有元素,如不存在,不会报错
print(s)
s.discard(4) # 不会报错
s = {"a","b","c"}
print(s.pop(),s) # 删除一个不确定的元素,并 return 该元素,若集合为空,会 raise error
s = {1,2,3}
print(s.pop()) # 数字类型好像每次都会pop出最小的1
s = {1,2,3,"b","c"}
print(s.pop()) # pop出不确定的非数字,或者最小的数字1
s.clear()
print(s) # 清空
Python学习(四)数据结构 —— set frozenset的更多相关文章
- python学习4—数据结构之列表、元组与字典
python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...
- python学习四(处理数据)
head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-34,3:21,2.34,2.45 ...
- 从0开始的Python学习012数据结构&对象与类
简介 数据结构是处理数据的结构,或者说,他们是用来存储一组相关数据的. 在Python中三种内建的数据结构--列表.元组和字典.学会了使用它们会使编程变得的简单. 列表 list是处理一组有序的数据结 ...
- Python学习笔记——数据结构和算法(一)
1.解压序列赋值给多个变量 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量. 唯一的前提就是变量的数量必须跟序列元素的数量是一样的. >>> data ...
- python学习之数据结构
python的数据很丰富,所以对于数据分析来讲, python是一种最合适的选择 下面讲述一下常见的数据结构,包括栈,队列,元组,字典,集合等,以及对这些数据结构进行操作 #堆栈,后进先出 a=[10 ...
- Python学习(四) Python数据类型:序列(重要)
插播一下,先了解一下Python的数据类型,Python现有的数据类型有好多,最重要的有列表.元组.字典 列表:我觉得可以对应java中的数组 list=['physics', 'chemistry' ...
- Python学习(四):模块入门
1.模块介绍 模块:代码实现的某个功能的集合 模块分类: 自定义模块 内置标准模块 开源模块 模块的常用方法: 是否为主文件:__name__ == '__main__' 如果是直接执行的某程序,那么 ...
- Python学习四|变量、对象、引用的介绍
变量 变量创建:一个变量也就是变量名,就像a,当代码第一次赋值时就创建了它.之后的赋值将会改变已创建的变量名的值,从技术上讲,Python在代码运行之前先检测变量名,可以当成是最初的赋值创建了变量. ...
- Python学习笔记——数据结构和算法(二)
1.字典中一个键映射多个值 可以使用collections中的defaultdict来实现,defalultdict接受list或者set为参数 from collections import def ...
- Python学习(四)数据结构(概要)
Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types int float Text Sequence ...
随机推荐
- ORA-**,oracle 12c操作问题
https://blog.csdn.net/typa01_kk/article/details/41924321
- js正则获取url参数,包含hash[#]和search[?]两种通用
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...
- 【笔试题】怎样将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串?
笔试题 怎样将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串? import java.io.UnsupportedEncodingException; public clas ...
- 113. 路径总和 II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ...
- scrapy抓取拉勾网职位信息(七)——实现分布式
上篇我们实现了数据的存储,包括把数据存储到MongoDB,Mysql以及本地文件,本篇说下分布式. 我们目前实现的是一个单机爬虫,也就是只在一个机器上运行,想象一下,如果同时有多台机器同时运行这个爬虫 ...
- Redux学习之我对于其工作流程的理解和实践
目录 1 工作流程图 2 各部位职责 3 Demo 1 工作流程图 2 各部位职责 我在理解这个流程图的时候,采用的是一种容易记住的办法,并且贴切实际工作职责. 我们可以把整个Redux工 ...
- Bzoj2120/洛谷P1903 数颜色(莫队)
题面 Bzoj 洛谷 题解 考虑对操作离线后分块处理询问操作(莫队算法),将询问操作按照编号分块后左端点第一关键字,右端点第二关键字排序(分块大小为\(n^{\frac 23}\)),对于每一个询问操 ...
- 【插头DP】BZOJ3125-city
开学忙成狗,刷题慢如蜗牛…… [题目大意] 给出一个m*n的矩阵里面有一些格子为障碍物,一些格子只能上下通行,一些格子只能左右通行,一些格子上下左右都能通行.问经过所有非障碍格子的哈密顿回路个数. [ ...
- centos 7 源码包安装、卸载nginx
1.源码包安装之前,首页安装依赖包 yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre ...
- MySQL单表恢复方法
正休息的时候一个电话将我的睡意完全打散,“开发童鞋写update SQL的时候忘了加where条件了”,相信每一个DBA同学听到这个消息的时候都有骂街的冲动吧.万幸只是单表写花了,而不是哪位大神在DB ...