大家好,在上一次推送中,我们一起学习了Python数据结构中的整数int、浮点数float以及复数,今天我们一起来学习其他的一些数据类型吧。...(3)逻辑值也有自己的运算:and,or,not. (4)可以让计算机根据情况自动作出选择,更加聪明。 2.逻辑值 (1)逻辑值用来配合if/while等语句做条件判断。...如果经常需要判断元素是否在一组数据中,这些数据的次序不重要的话,推荐使用集合,可以获得比列表更好的性能。 ?...五、字典dict 字典是通过键值key来索引元素value,而不是象列表是通过连续的整数来索引。字典是可变类型,可以添 加、删除、替换元素。字典中的元素value没有顺序,可以是任意类型。...字典中的键值key须是不可变类型(数值/字符串/元组)。
1、Series序列 系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。 ?...3、从字典创建一个系列 字典(dict)可以作为输入传递,如果没有指定索引,则按排序顺序取得字典键以构造索引。如果传递了索引,索引中与标签对应的数据中的值将被拉出。 ?...4、序列数据的访问 通过各种方式访问Series数据,系列中的数据可以使用类似于访问numpy中的ndarray中的数据来访问。 ?...你可以把它想象成一个电子表格或SQL表,或者 Series 对象的字典。它一般是最常用的pandas对象。 ? ?...18、查找替换 pandas提供简单的查找替换功能,如果要复杂的查找替换,可以使用map(), apply()和applymap() ?
处理键突变和字典集合的反向填充 当使用attribute_keyed_dict()时,字典的“键”来自目标对象上的属性。对此键的更改不会被跟踪。...这与 1.x 系列的行为相反,后者会错误地使用任意键值None填充字典中的值。...这与 1.x 系列的行为相反,后者会错误地使用任意键值None填充字典中的值。...这与 1.x 系列的行为相反,后者会错误地使用任意键值None填充字典中的值。...当使用`attribute_keyed_dict()`时,字典的“键”来自目标对象上的属性。
缓存本质 Student.FindByID内使用了单对象缓存:Meta.SingleCache[id]; 单对象缓存本质就是并行字典,因此使用方式上只需要直接索引器查找即可。...即使目标表有千万级数据,单对象字典缓存仍然可以轻松的取敌首级!^_^ 从键查询 前面实例展示了根据ID查找缓存对象,实际应用场景,还可能会根据名称进行查找,总不能另外搞一个对象缓存吧?...来自深圳的海洋饼干,很有创意的解决了这个问题,发明了从键缓存! ? 如上,Meta.SingleCache.GetItemWithSlaveKey(name) 实现了根据 name 查询用户。...使用从键缓存后,等于有两个入口(FindKey/FindSlaveKey)查询数据库,得到一个实体对象后,分别加入主键字典和从键字典,用于两个维度索引查询。...复杂条件,分页,自定义扩展FieldItem,查总记录数,查汇总统计 数据层缓存。Sql缓存,更新机制 实体缓存。全表整理缓存,更新机制 对象缓存。字典缓存,适用用户等数据较多场景。 百亿级性能。
变量 = [表达式 for 变量 in 可迭代对象] 变量 = [表达式 for 变量 in 可迭代对象 if 条件] # 列表推导式嵌套 变量 = [表达式 for 变量1 in 可迭代对象1 for...如果要使用推倒式类似的形式,我们可以用tuple转型,即 tuple( xxx for x in xxx),把生成器对象转型为元组。 ⭐️字典 由一系列 键值对 组成的 可变 散列 容器。...# 创建字典 字典名 = {键1:值1,键2:值2} 字典名 = dict (可迭代对象) # 转换为字典的格式要求:可迭代对象中的元素必须能够"一分为二"。...语句 # 删除元素: del 字典名[键] 注意:字典不能使用索引和切片操作。 因为字典是根据哈希运算的结果进行存储的,是一种用空间换时间的设计理念。...所以在索引的时候相较于其他的容器,字典是 最快的。 列表适合储存单一维度的数据,当我们要存储多维度的数据时,我们可以使用字典。
isin/notin,条件范围查询,即根据特定列值是否存在于指定列表返回相应的结果 where,仍然是执行条件查询,但会返回全部结果,只是将不满足匹配条件的结果赋值为NaN或其他指定值,可用于筛选或屏蔽值...get,由于series和dataframe均可以看做是类字典结构,所以也可使用字典中的get()方法,主要适用于不确定数据结构中是否包含该标签时,与字典的get方法完全一致 ?...,可通过axis参数设置是按行删除还是按列删除 替换,replace,非常强大的功能,对series或dataframe中每个元素执行按条件替换操作,还可开启正则表达式功能 2 数值计算 由于pandas...对象,功能与python中的普通map函数类似,即对给定序列中的每个值执行相同的映射操作,不同的是series中的map接口的映射方式既可以是一个函数,也可以是一个字典 ?...一般而言,分组的目的是为了后续的聚合统计,所有groupby函数一般不单独使用,而需要级联其他聚合函数共同完成特定需求,例如分组求和、分组求均值等。 ?
详细学习回顾请阅读:Day7数据类型-字典dict Day09 条件语句 第9天,默认情况下,Python脚本中的语句从上到下依次执行。...典型的是列表和字典的操作; 枚举:如果我们对列表的索引感兴趣,我们使用 enumerate 内置函数来获取列表中每一项索引。 当然还有另外两个 Spread 和 zip 具体用法参考详细文章。...re.split: 方法按照能够匹配的子串将字符串分割后返回列表。 re.sub: 查找并替换一个或者多个匹配项。...文本中还介绍了如何使用json模块将JSON字符串转换为字典(json.loads())以及将字典转换为JSON字符串(json.dumps())。...此外,还展示了如何将字典保存为JSON文件(json.dump())。 其他还简单演示了: 对于csv文件,文本演示了如何使用csv模块读取csv文件,并遍历行和列数据。
(Jupyter也可以加一个插件,开启vim模式,自由替换,见Python文学化编程 - Jupyter notebook使用和插件拓展)。 ?...6,对象方法的嵌套 平凡方法:定义中间变量,不嵌套。 ? 优雅方法:使用对象方法嵌套,减少中间变量。 ?...(set和dict的查询速度是O(1),很快的,具体见为啥我的Python这么慢 - 项查找 (二)) ? 10,判断是否为空列表,空字典,空字符串 平凡方法:使用len函数判断长度是否大于0。 ?...12,判断诸多条件是否全部成立 平凡方法:使用and连接多次判断。 ? 优雅方法:使用all函数。 ? 四,优雅你的循环语句 13,单行循环语句:推导式 平凡方法:使用普通for循环。 ?...18,使用装饰器给函数添加插入日志,性能测试等非核心功能 平凡方法:将插入日志,性能测试等非核心功能直接内嵌到函数定义中。 ? 优雅方法:使用装饰器扩展函数的非核心功能。
与其他主流编程语言一样,Python支持基于0的索引,在该索引中,我们在一对方括号内使用零访问第一个元素。此外,我们还可以使用切片对象来检索序列的特定元素,如下面的代码示例所示。...对于另一个实例,创建一个Enum类支持相同的替代解决方案。 4.三元表达 在许多用例中,我们需要根据条件定义具有特定值的变量,并且我们可以简单地使用if ... else语句来检查条件。...具体而言,该all()函数将评估何时迭代中的元素全部为True,因此该函数适合于替换一系列AND逻辑比较。...另一方面,该any()函数的计算结果为True当迭代中的任何元素为True,因此适合替换一系列OR逻辑运算。相关示例如下所示。...我们只需要指定一个整数(N),即可从列表中找出最频繁的N个项目。附带说明,该对象还将与其他序列数据一起使用,例如字符串和元组。
,当用字典时,字典的key会成为行索引 1,索引和切片 用中括号时,可以是显示索引,也可以是隐式索引 用句点符‘.’...4.2 还可以用drop(),drop系列的函数中,axis=1表示列,axis=0代表行,这和其他所有场景都是相反的 ? 4.3 上面两种清洗方法都是删除整行或者,整列,有时是不允许这样子删除。...参数join:'outer'将所有的项进行级联(忽略匹配和不匹配),'inner'只会把匹配的项进行级联。 ? 由于在以后的级联的使用很多,因此有一个函数append专门用于在后面添加。 ? ...还可以使用drop_duplicates(),这也是drop系列函数。 ? ...10.2 map()中还可以跟自定义函数 ? 11,排序 使用take()函数排序,take接受一个索引列表,用数字表示,使得df会根据列表中索引的顺序进行排序 ?
当将 Query 的语句嵌套到子查询或其他可选择项中时,或者当使用Query.yield_per()时主要用于。...此处的实体或可选择对象有效地替换了任何对 Query.join() 的调用的“左边缘”,当没有其他方式建立连接点时 - 通常,默认的“连接点”是查询对象的要选择的实体列表中最左边的实体。...提示的文本将根据正在使用的数据库后端在给定的 Table 或 Alias 中的适当位置进行渲染。方言实现通常使用 Python 字符串替换语法,其中令牌 %(name)s 用于呈现表或别名的名称。...主要用于将查询的语句嵌套到子查询或其他可选择项中,或者使用Query.yield_per()时。 method except_(*q: Query) → Self 对一个或多个查询产生此查询的差集。...此处的实体或可选择对象有效地替换了任何对Query.join()的调用的“左边缘”,否则,当没有其他方式建立连接点时,通常默认的“连接点”是Query对象的实体列表中的最左边的实体。
“ 本文并不肯定或者否定哪一种写法,仅仅为大家提供一些其他的编码思路或者一些值得借鉴的点子。 ? 图片来自 Pexels ?...将 If-Else 转换为字典,完全避免 If-Else 假设您需要执行一些操作,这些操作将根据某些条件进行选择,我们知道以后必须添加更多操作。 ? 也许有人倾向于使用久经考验的 If-Else。...注意,仅出于说明目的将字典放置在方法内部。您可能希望从其他地方提供它。 扩展应用程序,完全避免使用 If-Else 这是一个稍微高级的示例。通过用对象替换它们,知道何时甚至完全消除 If。...在此阶段使用 If-Else 并不是什么大问题,如果我们可以轻松替换其他,只要如前所述即可。 ? 知道我们需要扩展应用程序的这一部分,这种方法绝对是不可接受的。...正确的方法是遵循 SOLID 原则的方法,我们通过实施动态类型发现过程(在本例中为策略模式)来做到这一点。 重构这个混乱的过程的过程如下: 使用公共接口将每个分支提取到单独的策略类中。
大部分数据库系统能支持SQL/92标准的大部分功能以及SQL99、SQL2003中的部分新概念。同时许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改,又可以支持标准以外的一项功能特性。...关系型数据库在执行SQL的数据定义语句时,实际上就是更新数据库字典表中的相应信息。 进行查询优化和查询处理时,数据字典中的信息是其重要依据。 本篇只涉及到DDL,即数据定义语言。...]; RESTRICT与CASCADE的区别: RESTRICT指限制删除,表示该表的删除是有限制条件的:即该表不能被其他表的约束所引用(如CHECK,FOREIGN KEY等约束),不能存在依赖于该表的对象...只有当这些限制条件不存在时,才能允许删除。 CASCADE指级联删除,加上此参数之后则该表的删除没有限制条件。在删除基本表的同时,相关的对象,例如视图等,都将被一起删除。...这些都会增加数据库的负担,因此要根据实际应用的需要有选择地创建索引。 索引类型 目前SQL标准中没有涉及索引,但商用关系数据库系统一般都会支持索引机制,且不同数据库支持的索引类型不尽相同。
本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景。...我们将已经初始化过的图片进行缓存,等下次再使用该图片时直接从缓存中读取,从而节省了在主线程中创建对象和销毁对象的时间,从而可以提高UI的流畅度。...本篇博客所实现的Memory缓存就比较简单了,就使用了一个字典,字典的Key是图片的名称,字典的Value是已经创建的字典的对象。代码比较简单,下方是核心代码。...大体原理就是在获取时,如果缓存字典中没有相应的对象就进行创建并加入缓存,然后返回该对象。如果缓存中已经有该对象,则直接返回。核心代码如下。 ?...这样Cell就可以根据可变的文字高度来自适应了。当然该方法在iOS8以上的系统上才可以使用。 ? 经过上述这两步,我们的Cell就可以进行自适应了,下方是该解决方案所对应的运行效果。
1.1 元组 元组是个有序序列,包含0个或多个对象引用,使用小括号包裹。元组是固定的,不能替换或删除其中包含的任意数据项。...,列表是可变的,因此我们可以对列表中的项进行删除或替换,插入、替换或删除列表中的分片也是可能的。...,并且可以使用条件过滤掉不需要的数据项,可以使用表达式,也可以使用附加条件。...2.1.1 集合的创建 使用set()创建一个集合: 不指定参数时,返回一个空集合 使用set作为参数时,返回该参数的浅拷贝 其他参数时,尝试将给定的对象转换为集合 集合中包含的每个数据项都是独一无二的...,返回该参数的浅拷贝 键值对组合的参数,创建非空字典 字典的键值是独一无二的,因此,如果向字典中添加一个已存在的键值项,实际效果是新值替换旧值。
编者注:本文来自生信编程直播课程讲师投稿,点击阅读原文可以跳转到大神的博客,欢迎点击! 以下为文章全文: Python开发的方向太多了,有机器学习,数据挖掘,网络开发,爬虫等等。...二、基本知识点 1.基本语法 缩进:Python是通过代码缩进来决定代码层次逻辑的,一般约定使用4个空格 版本问题:主要包括2.x系列的和3.x系列的,两者语法不同且不兼容,有的模块只能在指定版本下安装.../usr/bin/env python#-*- coding: utf-8 –*- 变量定义:使用前要先定义 dir():列出一个数据类型或对象的所有方法,非常好用,同help() 文件操作:f = open...数据结构就是一种容器,用于在内存中存放我们的数据。 列表:任意元素组成的顺序序列,以位置为索引。...五、最后 Python只是一门编程语言,一种实现工具,我们可以用很多种语言来替换它,我们之所以选择Python,是因为我们喜欢它给我们带来的便捷。
总结 编码 使用条件 quicklist 所有数据 集合对象 涉及到的数据结构:intset, dict(hashtable), 强烈建议阅读本系列第五,第六篇文章。...总结 编码 使用条件 intset 所有元素都是整数且元素个数小于 512 hashtable 其他数据 有序集合对象 涉及到的数据结构,压缩列表, 跳跃表, 字典, 强烈建议阅读本系列 第三篇,第六篇...总结 编码 使用条件 ziplist 元素数量少于 128 且 所有元素成员的长度小于 64 字节 skiplist 不满足上述条件的其他情况 散列对象 涉及到的数据结构,压缩列表, 字典, 强烈建议阅读本系列...就颇为相似,因此哈希对象中的每一个键值对都是字典中的一个键值对。...总结 编码 使用条件 ziplist 键值对的键和值的长度都小于 64 字节,且 键值对个数小于 512. hastable 不满足上述条件的其他条件 全文总结 其实在前面的几篇文章写完之后,也就是在所有的底层数据结构介绍完之后
一看到“容器”,大家想到的多是那头蓝色小鲸鱼:Docker,但这篇文章和它没有任何关系。本文里的容器,是 Python 中的一个抽象概念,是对专门用来装其他对象的数据类型的统称。...使用 next() 函数 5. 使用有序字典来去重 常见误区 1. 当心那些已经枯竭的迭代器 2. 别在循环体内修改被迭代对象 总结 系列其他文章 注解 当我们谈论容器时,我们在谈些什么?...举个例子,在 Python 2 中,如果我们合并两个字典,需要这么做: def merge_dict(d1, d2): # 因为字典是可被修改的对象,为了避免修改原对象,此处需要复制一个 d1...使用它配合生成器表达式,可以高效的实现“从列表中查找第一个满足条件的成员”之类的需求。...系列其他文章 所有文章索引 [Github]:http://t.cn/E5vETxs Python 工匠:善用变量改善代码质量:http://t.cn/E5vnArj Python 工匠:编写条件分支代码的技巧
在Elasticsearch中,分词器是用于将文本数据划分为一系列的单词(或称之为词项、tokens)的组件。这个过程是全文搜索中的关键步骤。...分词器(Tokenizer):它将经过字符过滤器处理后的文本进行切分,生成一系列词项。例如,标准分词器会按照空格将文本切分成词项。 词项过滤器(Token Filters):它对词项进行进一步的处理。...最后,在 mappings 对象中,我们指定 "my_field" 字段要使用这个自定义分析器。...Mapping Character Filter:通过一个预定义的映射关系,将指定的字符或字符串替换为其他字符或字符串。例如,你可以定义一个规则将 "&" 替换为 "and"。...例如,假设你需要在索引或搜索时删除所有的数字,可以使用 Pattern Replace Character Filter,并设置一个匹配所有数字的正则表达式 [0-9],然后将其替换为空字符串或其他所需的字符
领取专属 10元无门槛券
手把手带您无忧上云