键值

Python学习笔记:字典

陌路散爱 提交于 2020-02-24 07:43:27
文章目录 1 字典的用途 2 基本用法 2.1 创建字典 2.2 基本操作 2.3 将字符串格式设置功能用于字典 2 字典方法 2.1 clear copy 2.3 fromkeys 2.4 get 2.5 items 2.6 keys 2.7 values 2.8 pop 2.9 popitem 2.10 setdefault 2.11 update 可以通过名称来访问各个值的数据结构,成为映射(mapping),字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下。键可能是数,字符串或元组。 1 字典的用途 字典旨在让你能够轻松的找到特定的单词(键),以获取其定义(值)。如: 表示棋盘的状态,其中每个键都是由坐标组成的元组; 存储文件修改的时间,其中键为文件名; 数字电话/地址簿。 2 基本用法 字典由键及其相应的值组成,这种键值对成为项(item)。如: >> > people = { 'Li' : 886 , 'tang' : 12 } >> > people { 'Li' : 886 , 'tang' : 12 } 每个键与其值之间都用冒号分隔,项之间用逗号分隔,而整个字典放在花括号内。 2.1 创建字典 使用函数 dict 从其他映射或者键值对序列创建字典。 >> > items = [ ( 'name' , 'Li' ) , ( 'age' ,

PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题

折月煮酒 提交于 2020-02-22 05:31:11
  求两个数组的交集问题可以使用array_intersect(),array_inersect_assoc,array_intersect_key来实现,其中array_intersect()函数是求两个数的交集,返回一个交集共有元素的数组(只是数组值得比较)、array_intersect_assoc()函数是将键值和值绑定,一起比较交集部分、array_intersect_key()函数是将两个数组的键值进行比较,返回键值交集的数组。   但实际应用中也遇到了一些小问题,正如下:   实例: <?PHP $array = array("red"=>"Red","green"=>"red4","Red15"=>"Red",7=>"Level","Width"=>"Red","azzzz1"=>"art","peak"=>158); $array1 = array("red"=>"Red2","greena"=>"red","Red15"=>"Red",7=>"Level","Width"=>"Red","azzzz"=>"art","peak"=>158); $num = array_intersect($array,$array1); print_r ($num); echo "<br />"; $num = array_intersect_assoc($array,

python基础学习之元组和字典的功能方法

本小妞迷上赌 提交于 2020-02-21 20:34:50
什么是元组?(tuple) emmmmmm,这个没必要深究吧,就是一排‘元素’,一行 格式: a = (1,2,3,4,5,6,7,8,9)用小括号表示的,极为元组。 其有序,且不可更改,可以对比str、list看。 书写的时候注意点,由于()在代码中常见,为了方式发生自己的误读,一般元组在元素最后会补一个逗号。如 print((1,2,3,4,5,6,7,)) 功能情况 .count():查找指定元素在元组中出现了几次 .index():查找指定元素在元组的序号位置 什么是字典?(dict) 格式 a = {'k':'1','s':'2'} 字典以大括号表示,其中元素为键值对(items) 键值对(items)的特点:有键key和值value成对组成 其中value可以是任何一样东西,字典、元组、列表、字符串、数字都可以,但是key不可以是可修改内容,比如列表、字典(没错,字典内容可以类似列表修改) .clear():这个是清除字典内所有内容 .copy():这个是浅复制字典 .fromkeys(key,value):在没有字典情况下创建字典,以第一个参数key的可迭代对象作为新字典的key,统一值输出 s = dict.fromkeys('12345',1000) .items():将键值对以列表形式输出 .keys():将键值对的键以列表形式输出 .values()

疫情环境下的网络学习笔记 python 之字典

寵の児 提交于 2020-02-20 21:59:23
python学习笔记之 字典 创建字典 字典是python中数据类型之一,可存储任意类型的对象,可以理解为:字典中保存两组数据,其中一组是关键数据,被称为key;另一组可以通过key来访问,称为value;key与value间具有映射关系。 类似变量名与变量值的关系,程序需要通过key来访问value,因此字典中的key不允许重复,否则前面key值的value会被后面的覆盖。 dic={ 2: 5, 'key2':2, 'key3':'3', 'key4':'4', } 创建字典的格式如上,使用等号 = 和花括号 {} 创建。key与value间用冒号 : 分隔,每个键值之间用逗号 , 间隔 value可以取任何数据类型,key只可以取字符串,元组或数字 对上面字典 dic 执行 print(dic[2]) ,结果为 5 访问字典中的值 在中括号中放入字典中的key以访问相应的value,格式如下 print(dic['key2']) print(dic[2]) 若用字典里没有的key值访问,则报错 修改字典 1.为字典添加键值时,只需为字典里不存在的key赋值便可添加键值 dic['key5']=input('input key5:') print(dic) 得到结果 input key5:11 {2: 5, 'key2': 2, 'key3': 3, 'key4': 4,

ES6 Map数据结构

左心房为你撑大大i 提交于 2020-02-15 03:20:55
Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。 ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。 const m = new Map(); const o = {p:"hello world"}; m.set(o,'content'); console.log(m.get(o)); // content console.log(m.has(o)); // true console.log(m.delete(o)); // true console.log(m.has(o)); // false 上面代码使用 Map 结构的set方法,将对象o当作m的一个键,然后又使用get方法读取这个键,接着使用delete方法删除了这个键。 上面的例子展示了如何向 Map 添加成员。作为构造函数,Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。 const map = new Map([[

简单动态字符串

邮差的信 提交于 2020-02-13 23:48:47
  Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。   当Redis需要的不仅仅是一个字符串面量,而是一个可以被修改的字符串值时,Redis就会使用SDS来表示字符串值,比如在Redis的数据库里,包含字符串值得键值对在底层都是由SDS来实现得。   客户端执行命令     set msg "hello world"   那么Redis将在数据库中创建一个新得键值对,其中     键值对得键是一个字符串对象,对象得底层实现是一个保存着字符串“msg”的SDS     键值对的值也是一个字符串对象,对象的底层实现是一个保存着字符串“hello world”的SDS   又比如,客户端执行命令     rpush fruits “apple” “banana” “cherry”   那么Redis将在数据库中创建一个新的键值对,其中      键值对的键是一个字符串对象,对象底层实现是一个保存了字符串“fruits”的SDS      键值对的值是一个列表对象,列表对象包含了三个字符串对象,这三个字符串对象分别由三个SDS实现:第一个SDS保存着字符串“apple”,第二个SDS保存着字符串

从原理到优化,深入浅出数据库索引

半世苍凉 提交于 2020-02-13 23:44:06
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 数据库查询是数据库的最主要功能之一,我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化,这篇文章对索引做一个系统的梳理,希望对大家有帮助。 一、MySQL有哪些索引类型 索引的分类可以从多个角度进行,下面分别从数据结构,物理存储和业务逻辑三个维度进行划分。 1、从数据结构角度 (1)B+树索引(O(log(n))) 关于B+树索引,后面会深入解析 (2)hash索引 仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引 只有Memory存储引擎显示支持hash索引 (3)FULLTEXT索引 现在MyISAM和InnoDB引擎都支持了 (4)R-Tree索引 用于对GIS数据类型创建SPATIAL索引 2、从物理存储角度 (1)聚集索引(clustered index) 正文内容按照一个特定维度排序存储,这个特定的维度就是聚集索引; Innodb存储引擎中行记录就是按照聚集索引维度顺序存储的,Innodb的表也称为索引表;因为行记录只能按照一个维度进行排序

javaSE学习笔记(11)--- Map

淺唱寂寞╮ 提交于 2020-02-12 23:48:49
javaSE学习笔记(11)--- Map 1、Map集合 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map 接口。 我们通过查看 Map 接口描述,发现 Map 接口下的集合与 Collection 接口下的集合,它们存储数据的形式不同,如下图。 Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 Map 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 Collection 中的集合称为单列集合, Map 中的集合称为双列集合。 需要注意的是, Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。 Map常用子类 通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。 HashMap<K,V> :存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。 LinkedHashMap<K,V> :HashMap下有个子类LinkedHashMap

flask-caching

倾然丶 夕夏残阳落幕 提交于 2020-02-12 14:42:15
作用:用于缓存 官网 https://pythonhosted.org/Flask-Cache/ 安装 pip install Flask-Cache 或 pip install Flask-Caching 配置(三种方式) 第一种 from flask import Flask from flask_caching import Cache app = Flask(__name__) # Check Configuring Flask-Caching section for more details cache = Cache(app, config={'CACHE_TYPE': 'simple'}) 第二种 cache = Cache(config={'CACHE_TYPE': 'simple'}) app = Flask(__name__) cache.init_app(app) 第三种 #: Method A: During instantiation of class cache = Cache(config={'CACHE_TYPE': 'simple'}) #: Method B: During init_app call cache.init_app(app, config={'CACHE_TYPE': 'simple'}) 配置多个缓存实例

MySQL索引

柔情痞子 提交于 2020-02-12 06:35:31
1.B树与B+树的区别? 1. B+树改进了B树, 让内结点只作索引使用, 去掉了其中指向data record的指针, 使得每个结点中能够存放更多的key, 树的层高能进一步被压缩, 使得检索的时间更短. 2. 由于底部的叶子结点是链表形式, 因此也可以实现更方便的顺序遍历 2.MySQL中HASH索引和B+树索引的区别? B+索引: B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接 在B+树上的常规检索,从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动,而且基于索引的顺序扫描时,也可以利用双向指针快速左右移动,效率非常高。 哈希索引: 哈希索引就是采用一定的哈希算法,把键值换算成新的哈希值,检索时不需要类似B+树那样从根节点到叶子节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置,速度非常快。 两者的区别: 1. 如果是等值查询,那么哈希索引明显有绝对优势,因为只需要经过一次算法即可找到相应的键值;当然了,这个前提 是,键值都是唯一的。如果键值不是唯一的,就需要先找到该键所在位置,然后再根据链表往后扫描,直到找到相应的数据 2. 从示意图中也能看到,如果是范围查询检索,这时候哈希索引就毫无用武之地了,因为原先是有序的键值,经过哈希算 法后,有可能变成不连续的了,就没办法再利用索引完成范围查询检索 3. 同理