🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 4.1 字典的使用 # 4.2 创建和使用字典 ## 4.2.1 dict函数 ![](https://box.kancloud.cn/7e9e712c010c787f2406588107435575_405x117.png) ## 4.2.2 基本字典操作   与序列(sequence)相似处: * len(d) 返回 d 中项(键 - 值 对) 的数值 * d[k] 返回关联到键 k 上的值 * d[k]=v 将值v关联到键 k 上 * del d[k] 删除键为 k 的项 * k in d 检查 d 中是否有含有键为 k 的项     区别: * 键类型:字典的键不一定为整型数据(但也可能是),也可能是其他不可变类型,比如浮点型(实型)、字符串或者元组。 * 自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字典就会建立新的项。而(在不使用append方法或者其它类似操作的情况下)不能将值关联到列表范围之外的索引上。 * 成员资格: 表达式 k in d (d 为字典)查找的是键,而不是值。表达式 v in l (l 为列表)则用来查找值,而不是索引。 ![](https://box.kancloud.cn/3bbabf5b8fc7a5f313e2c76814d95671_414x135.png) ## 4.2.3 字典的格式化字符串 ![](https://box.kancloud.cn/e5ed9866b60ad324e1fc1152cb944662_601x200.png) ## 4.2.4 字典方法 1.clear   clear方法清除字典中所有的项。 ![](https://box.kancloud.cn/00a5c5ffd34a589fc8f46188239aec00_286x137.png) ![](https://box.kancloud.cn/bc9288d088f55e150e7b326b549303da_215x246.png) 2.copy   copy 方法返回一个具有相同键-值对的新字典(这个方法实现的是浅复制(shallow copy),因为值本身就是相同的,而不是副本)。 ![](https://box.kancloud.cn/cb36928283f745995090b8847aa109e3_615x179.png) ![](https://box.kancloud.cn/05b8463ed7c4375641234c0dc27aa3de_375x222.png) 3.fromkeys   fromkeys方法使用给定的键建立新的字典,每个键默认对应的值为None。 ![](https://box.kancloud.cn/a6e6ec09d294339800059d5010a51784_389x128.png) 4.get   get 方法是个更宽松的访问字典项的方法。用get 访问不存在的项,不会出错。 ![](https://box.kancloud.cn/fca23c7db92e605575c1bbc2a1a4c624_318x213.png) 5.has_key   has_key方法可以检查字典是否含有给出的键。 ![](https://box.kancloud.cn/39cf4dca3ce102438d07a33bd9e2e8b8_235x88.png) 6.items 和 iteritems   items 方法将所有的字典项以列表方式返回,这些列表项中的每一项都来息(键,值)。但是项在返回时并没有特殊的顺序。 ![](https://box.kancloud.cn/3bea19893c171212606cef21fa06d770_639x83.png)   iteritems 方法的作用大致相同,但是会返回一个迭代器对象而不是列表 ![](https://box.kancloud.cn/387df67842ec0b45a9e23a1ecb429ed9_625x83.png) 7.keys 和 iterkeys   keys 方法将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器。 ![](https://box.kancloud.cn/a8a5f980958faa9463d7709e7af4bed8_639x134.png) 8.pop   pop 方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除。 ![](https://box.kancloud.cn/12c008fae18e35a8aef811081441c747_251x75.png) 9.popitem   popitem 方法类似于list.pop,后者会弹出列表的最后一个元素。 ![](https://box.kancloud.cn/bc1147c5d699022e4157297f8cbbc343_654x101.png) 10.setdefault   setdefault 方法在某种程度上类似于 get 方法,就是能够获得与给定键相关联的值,除此之外, setdefault 还能在字典中不含有给定键的情况下设定相应的键值。 ![](https://box.kancloud.cn/d7721d4ef343d8760e0f9337fd27d60f_301x220.png) 11.update   update 方法可以利用一个字典项更新另外一个字典。 ![](https://box.kancloud.cn/3fd9a850d5d41285c111f6f05551f8e0_784x294.png) 12.values 和 itervalues   values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)。 ![](https://box.kancloud.cn/e9792ae0fcaba62f5d81b6382771e164_200x103.png) # 4.3 小结 dict(seq): 用(键,值)对(或者映射和关键字参数)建立字典。