目录
字典概念 dict
这个就不陌生了,字典和 mongodb中字典是一样的
定义很自由的,但是字典中不能有重复的键
字典的值并非只是字符串,字典的值可以是任何的类型
字典的键可以是字符串,整数和其他一些类型
注意空的字典 是 {} ,这个和集合是有区别的
然后就是 元组可以作为 字典的 key值存在的
字典类型的关键字是 dict,定义字典的时候变量名可不要给覆盖了
字典元素的访问
这个和 mongodb和nodejs是一样的,
使用 a[属性名]进行即可,[] 属性名访问法
如果属性名不存在的时候,会抛出异常的KeyError
KeyError: 'x'
修改字典
字典的修改这个和nodejs是一样的
可以随时修改某个 key的值
字典[key] = 新值
也可以给字典增加新的键值对
字典的值
字典的值是很自由的,因此可以自由的指定
比如字典的值可以是 列表,元组,集合,字典 等等
当字典中的值是列表的时候,访问字典的方式如同我们之前的二维数组访问方式一样
字典键的个数
使用 len() 函数可以得到字典键值对的个数
判断某个键值是否在字典中
使用 in 操作符进行操作即可
空字典为假值
字典的解析
字典的解析和列表的解析类似,返回值是一个字典
但是元素的形式必须满足字典的特性 key:value的形状
所以最终字典解析的 外貌就是
{ key:value for key in 循环体 if 子句}
字典的 keys , values , items 获取
字典的 keys() , values() 和 items() 方法 可以对应获取
但是这些方法返回的结果可不是 列表
而是 dict_keys , ditc_values , dict_items
他们也可以用于for 循环的
从字典获取值的 get方法
可以使用 in 来判断一个 key 是否在 字典中
但是每次这个就会很麻烦
我们可以使用 get 方法来完成
它有两个参数,一个是 key值,另外一个是key不存在的时候返回的默认值
给字典中设置一个新的键值对
如果我们再获取字典一个key的时候,如果key不存在的时候
会报这个 KeyError 的错误
但是 我们总不能老来检测这个吧
所以使用 setdefault() 方法
如果这个key不存在的时候就给设置一个默认的值
如果这个key 存在,那么就返回这个key对应字典的值
因此使用这个方法也可以动态的初始化字典的
使用字典进行字符串格式化
前面介绍print的时候,我们知道 字符串的格式化
%{n}s % (参数列表)
之前使用的是元组进行的格式化
列表是不可以的
集合也是不可以的
但是 字典是可以的
%(字典key)s % 字典
这样就会将字典对应的key替换为 value 的
即使将字符串换成这个 数字 ,也不会和之前的 补空格的用法冲突