python学习笔记:字典(dictionary)
- 字典(dictionary)与列表(list)的主要差别就是字典是通过键来存取的,而不是偏移,并且字典(dictionary)是无序的,因此字典(dictionary)不支持合并与分片的操作。
- 字典(dictionary)有时会被叫做关联数组(associative array)或者是散列表(hash),很多时候取代了低级语言中的一些数据结构,具体如何取代需要看具体的项目。
- 字典(dictionary)是任意对象的无序集合。
- 字典(dictionary)支持变长,异构,任意嵌套,非常灵活。
- 字典(dictionary)属于可变的映射类型,可在原处修改,这一点与列表是一样的(list)。
- 字典(dictionary)中的元素以“键:值(key:value)的形式存在”。
- 每次对新字典键赋值的时候,就会在字典中生成一个新的元素,而列表中则不相同,因为python会将超出列表末尾的偏移视作越界。
- 字典(dictionary)常量与操作:
操作 | 解释 |
---|---|
D = { } | 空字典 |
D = {‘spam’ : 2,‘eggs’ : 3} | 两项目字典 |
D = {‘food’ : {‘ham’ :1, ‘egg’ : 2}} | 嵌套 |
D = dict.fromkeys([‘a’, ‘b’]) | 新建字典并指定键的值 |
D = dict(zip(keyslist, valslist)) | 新建字典并确定键与值 |
D = dict(name = ‘Bob’, age = 42) | 按等式左边为键,右边为值的方式新建字典 |
D[‘eggs’] | 按键进行索引运算 |
D[‘eggs’][‘ham’] | 按键进行索引运算 |
‘eggs’ in D | 成员关系 |
D.keys() | 键 |
D.values() | 值 |
D.items() | 键+值 |
D.copy() | 副本 |
D.get(key, default) | 当字典中不存在此键时,会返回设置的默认值,而不会报错 |
D.update(D1) | 取并 |
D.pop(key) | 按键删除并返回对应的值 |
len(D) | 求长度 |
del D[key] | 按键删除 |
list(D.keys()) | 由字典的键生成一个列表 |
D1.keys() & D2.keys() | 返回set() |
D = {x: x*2 for x in range(10)} | 字典解析 |
- 字典(dictionary)中比较实用的例子:语言表。
table = {'c':'chinese','f':'france','e':'english'}
country_key = 'c'
country = table[country_key]
for co in table:
print(co, '\t', table[co])
输出:
c chinese
f france
e english
- 字典使用最需要注意的几个问题:
- 序列运算是无效的。
- 对新的索引赋值会添加项而不会报错。
- 键不一定总是字符串(比如在键为有序的整数时,可以效仿列表,按偏移进行操作,因此也可以用于稀疏数据结构)。