字典是Python中最常用和最灵活的数据结构类型了。字典与列表的主要区别:字典中的元素是通过键来存取,而列表是通过偏移存取。列表是有序的,字典是无序的。
Python中的字典概念相当于shell中的关联数组,还有perl中的hash列表,还好后两者概念在Python中也是等同于字典,这样概念就清晰了。key:value
总结下字典的一些特性:
- 任意对象的无序集合
- 通过键进行存取
- 可变长、异构、任意嵌套
- 属于可变映射类型:支持原处修改
- 对象引用表(hash表):字典通过hash表(快速检索)实现
字符串转换成字典的一个场景:
a = '{"name": "电脑", "price": 1999}'
此时type(a)为str类型,如果想转换成dict类型,使用eval方法:
a = eval(a)
常见操作说明:
操作 | 说明 | 其它 |
D = {} | 定义空字典. D.clear():清空字典 | |
D[key] = value | 给字典添加一个键值对 | |
D = dict(name='Bob',age=19) | 手动通过dict函数定义字典,如果已存在则覆盖 | |
D = dict(zip(keylist,valuelist)) | 通过zip函数建立键值映射,然后通过dict函数构造字典 | |
key in D | 测试key是否存在于字典中 | |
D[key1][key2] | 获取对应key的value | |
D.keys() | 获取所有键的方法 | |
D.values() | 获取所有值的方法 | |
D.items() | 获取所有键值对,输出列表格式, | |
D.get(key) | 获取value,此方法比D[key]更适合,当key不存在默认返回空,当然也可以指定返回值,格式为D.get(key,default_value), 即当key存在时返回对应value,而不存在时则返回定义的默认值,而D[key]则会导致程序出错。 | |
D.copy() | copy | |
D.pop(key) | 删除指定键值 | |
del D[key] | 删除指定键值 | |
D.update(D2) | 合并字典,类似列表的extend.如果有重复的key则覆盖值 | |
list(D.keys()) | 字典实图(字典的key作为列表) python3 | |
D.setdefault(key,default) | 如果key存在则返回value,如果不存在则添加键值 |