字典
字典也称为关联数组(associative array)或者散列表(hash)。除了列表之外,字典也许是python中最灵活的内置数据结构,如果把列表看做是有序的对象集合,那么字典就是无序的集合。他们的主要差别是:字典当中的元素是通过键来存取的,而不是通过偏移存取。–《python学习手册》
1、创建字典
-
创建一个空字典
D = {}
-
创建有项目的字典
D = {'name':'Bob,'school':'UESTC'}
-
使用
D = dict(name = 'Bob',school = 'UESTC')
-
使用
D = dict.fromkeys(seq,value)
使用seq
中的值作为键生成字典,值为value -
使用
D = dict(zip(keylist,valuelist))
关键字和对应的值列表,与3不同的是,他有值列表,而3是所有的键都设为默认值 -
其他迭代的方法
D = {k:v for (k,v) in zip(keylist,valuelist)}
、D = {x: x**2 for x in keylist}
等
2、字典的常见操作
-
使用
D.copy()
对字典进行浅复制 -
使用
len(D)
求字典中键的个数 -
使用
D.get(key,default)
返回字典中指定键的值,如字典中不存在此值,返回默认值 -
使用
D.setdefault(key,default)
返回字典中指定键的值,如字典中不存在此值,将会添加键并将值设为default -
使用
D.update(D2)
将D2合并到D中 -
使用
D.pop(key,default)
从D中删除对应键及对应的值,并返回值。若键不存在则返回default -
使用
D.popitem(key)
从D中删除最后一个键及对应的值,返回一个包含键和值的元组 -
key in D
返回一个布尔值,判断键是否存在在字典中 -
D.keys()
、D.values
、D.items
返回一个可以迭代的视图而非列表,当然可以使用list()
将其变为列表 -
字典键排序
>>>D = ['a':1, 'b':2, 'c':2] >>>Ks = list(D.keys()) >>>Ks = Ks.sort() >>>for k in Ks: print(k, D[k]) a 1 b 2 c 3
>>>D = ['a':1, 'b':2, 'c':2] >>>for k in sorted(D.keys()): print(k, D[k]) a 1 b 2 c 3
>>>D = ['a':1, 'b':2, 'c':2] >>>for k in sorted(D): print(k, D[k]) a 1 b 2 c 3
-
字典比较
>>>b = dict.fromkeys(['a','b','c'],1) >>>a = {} >>>sorted(a.items())<sorted(b.items())3 True