字典 系统管理员 2021-05-03 14:52 3021阅读 0赞 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 假设要根据同学的名字查找对应的成绩 ,用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下: >>>d = \{'Michael': 95, 'Bob': 75, 'Tracy': 85\} >>>d\['Michael'\] 95 这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。 **字典常用函数** 1、赋值、修改、索引 D1=\{\} 空字典 D=\{'one':1\} 设置字典 D2=\{'name':'diege','age':18\} 两项目字典 D3=\{'name':\{'first':'diege','last':'wang'\},'age':18\}嵌套 D1\[key\]='class' 增加数据:已经存在就是修改,没有存在就是增加数据 D2\['name'\] 以键进行索引计算 D3\['name'\]\['last'\] 字典嵌套字典的键索引 D\['three'\]\[0\] 字典嵌套列表的键索引 D\['six'\]\[1\] 字典嵌套元组的键索引 2、键,值,求长,索引 dict.keys() 方法:键列表 返回一个包含字典中键的列表 dict.values() 方法:值列表 返回一个包含字典中所有值的列表 len(D) 方法:求长(存储元素的数目) 3、删除,拷贝,合并,清空 1)删除 del dict\[’key'\] 函数del 函数字典中指定键 dict.pop('age') 根据key删除,并返回删除的value dict.pop(key\[, default\]) 和方法get()相似,如果字典中key 键存在,删除并返回dict\[key\],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。 dict.popitem() 从字典前面一对K:V的方式删除,并返回K,V合成的元组 >>> D \{'name': 'jin', 'sex': 'man'\} >>> D.popitem() ('name', 'jin') >>> D \{'sex': 'man'\} 2)拷贝 dict.copy() 方法:拷贝 返回字典(浅复制)的一个副本 3)合并 D2.update(D1) 方法:合并。D1合并到D2,D1没有变化,D2变化。 4)清除 dict.clear() 方法:清除字典 删除字典中所有元素,字典对象还有,但字典是空字典 del dict del函数删除整个dict字典 字典对象也都没有 4、key存在判断 dict.has\_key(key) 方法:判断字典是否有key键 如果键(key)在字典中存在,返回True,否则返回False. 'name' in D 方法:成员测试:注意使用key来测试 'name' not in D 方法: 成员测试,不存在key的情况 5、默认值 1)、创建时设置默认值 dict.setdefault(key,default=None)和方法set()相似,如果字典中不存在key 键,由dict\[key\]=default 为它赋值,如果存在则不改变原字典值 >>>D.setdefault('name','jin') 'jin' >>> D \{'name': 'jin'\} >>> D.setdefault('name','test') 'jin' >>> D \{'name': 'jin'\} 2)、求值是设置字典默认值 dict.get(key,default=None) 对字典dict中的存在的键key,返回它对应的值value,如果字典中不存在此键,则返回default的值(注意,参数default 的默认值为None) >>> D \{'name': 'jin'\} >>> D.get('sex','man') \#不存在时返回设置的默认值 'man' >>> D \{'name': 'jin'\} >>>D.get('name','diege') \#存在时返回存在健的值 'jin' >>> D \{'name': 'jin'\} 6、特别健值组合 dict.items() 返回一个包含字典中(键, 值)对元组的列表 dict.iter() 方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。 dict.items() 实例 >>> D.items() \[('name', 'jin'), ('sex','man')\] iteritems() 实例 >>> for i inD.iteritems(): ... print i ... ('name', 'jin') ('sex', 'man' 'fromkeys', 'get', iterkeys() 实例 >>> for i inD.iterkeys(): ... print i ... name sex itervalues() 实例 >>> for i inD.itervalues(): ... print i ... jin man 8、创建字典的多种方法 1) >>>\{'name':'diege','age':45\} \{'age': 45, 'name': 'diege'\} 2) >>> D=\{\} >>> D\['name'\]='lily' >>> D\['age'\]=18 >>> D \{'age': 18, 'name': 'lily'\} 3)dict(key1='value1',key2='value2') >>>dict(name='kelly',age=19) \{'age': 19, 'name': 'kelly'\} 注意这里name,age没有 ’‘括起来,因为这里是变量。 4)dict(\[(’key1','value1'),(key2','value2')\]) >>>dict(\[('name','tom'),('age',23)\]) \{'age': 23, 'name': 'tom'\} 这里将每一个数据(属性),做为元组放到一个列表里传递给dict函数 dict(列表,列表中的每个元素是一对key value 组成的元组) 5)dict(zip(keyslist,valslist)) >>>keyslist=\['shell','sql'\] >>>valslist=\[\['s1','k1','all'\],\['s1','k1','all'\]\] >>> keyslist \['shell', 'sql'\] >>> valslist \[\['s1', 'k1', 'all'\], \['s1','k1', 'all'\]\] >>> D=dict(zip(keyslist,valslist)) >>> D \{'shell': \['s1', 'k1','all'\], 'sql': \['s1', 'k1', 'all'\]\} 6)dict.fromkeysc(seq,val=None) 方式 dict.fromkeysc(seq,val=None) 创建并返回一个新字典,以seq中的元素做该字典的键的列表,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为None) dict.fromkeys 可以从一个列表读取字典的key 值默认为空,可指定初始值.两个参数一个是KEY列表,一个初始值 >>>dict.fromkeys(\['a','b','c'\],0) \{'a': 0, 'c': 0, 'b': 0\} 6种方法的选择技巧 \*如果可以事先拼除整个字典,那么第一种是很方便的。 \*如果需要一次动态地建立字典的一个字段,第二种比较合适 \*第三种关键字形式所需的代码比常量少,但是键必须是都是字符串才可行 \*如果需要在程序运行时把键和值逐步建成序列。第四中比较有用。 **set** set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。 要创建一个set,需要提供一个list作为输入集合: >>> s = set(\[1, 2,3\]) >>> s \{1, 2, 3\} 注意,传入的参数\[1, 2, 3\]是一个list,而显示的\{1, 2, 3\}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。 重复元素在set中自动被过滤: >>> s = set(\[1, 1,2, 2, 3, 3\]) >>> s \{1, 2, 3\}
相关 字典 字典用花括号括起来,字典是由键值对组成的,键值对有键和值组成,键和值由:分开,每个键值对由逗号分开。 ![70][] my_dict={ 'tom ゝ一纸荒年。/ 2024年02月18日 21:38/ 0 赞/ 49 阅读
相关 字典总结三|公共字典 公共字典 sensetive.txt 适用于任何环境的路径字典 /Purview/GroupPurviewIndex /Home/main /s 布满荆棘的人生/ 2022年11月05日 12:57/ 0 赞/ 240 阅读
相关 字典 字典: > 概念: 是以 key-value 来存储多个值,查找速度快 > 注意:1.字典是可变数据类型 > 注意:2.字典是是无序 > key的特点; > 系统管理员/ 2022年06月06日 14:14/ 0 赞/ 200 阅读
相关 字典 字典常用方法 ![1184802-20180204162939014-1636041399.png][] 字典的表示方法: info_dic={ 左手的ㄟ右手/ 2022年03月30日 13:20/ 0 赞/ 264 阅读
相关 字典 \---恢复内容开始--- 1、一个简单的字典 在一个游戏中,其中包含一些外星人,这些外星人的颜色和点数各不相同,下面是一个有关外星人的信息。 ![1579733-2 骑猪看日落/ 2021年12月23日 04:45/ 0 赞/ 429 阅读
相关 字典 1 字典基础 1.1 字典是无序的对象的集合,通过键来存取,字典的键只能是不可变类型。 1.3 字典的长度可变,异构,任意嵌套。 1.2 python中不 ╰+哭是因爲堅強的太久メ/ 2021年12月18日 05:15/ 0 赞/ 320 阅读
相关 字典 对字典的认识: 字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。 > 注意: > > 键必须独一无二,但值则不必。即,键是不能重 r囧r小猫/ 2021年09月13日 21:26/ 0 赞/ 1408 阅读
相关 字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 假设要根... 系统管理员/ 2021年05月03日 14:52/ 0 赞/ 3022 阅读
还没有评论,来说两句吧...