dict:key-value键值对组成的数据的集合是可变的、无序的、key不可重复
字典初始化
d1 = {}
d2 = dict(a=1,b=2,c=(1,2))#{'a': 1, 'b': 2, 'c': (1, 2)}
d3 = {'a':10,'b':20,'c':[1,2,3]}
元素访问
1.d[key],返回key对应的value值,若不存在抛出异常KeyError
2.get(key,[,default]),返回key对应的value值,若不存在返回缺省值,若缺省值未设置返回None
3.setdefault(key,[,default]),返回key对应的value值,若不存在创建kv对并返回缺省值
dict1 = {'a':10,'b':20,'c':[1,2,3]}
d1 = dict1['a']
d2 = dict1.get('c')
d3 = dict1.get('d')#key不存在,返回缺省值
d4 = dict1.setdefault('m','test')#key不存在,自动创建并返回缺省值(test)
print('d1:',d1)
print('d2:',d2)
print('d3:',d3)
print('d4:',d4)
print(dict1)
#输出
d1: 10
d2: [1, 2, 3]
d3: None
d4: test
{'a': 10, 'b': 20, 'c': [1, 2, 3], 'm': None}
元素增加
1.d[key] = value,若key存在进行修改,若key不存在则进行创建
2.update([other]),使用另一个字典来进行更新
d = {'a':1,'b':2}
d['c'] = 4
print('d:',d)
d.update({'m':99})
print('d:',d)
#输出
d: {'a': 1, 'b': 2, 'c': 4}
d: {'a': 1, 'b': 2, 'c': 4, 'm': 99}
字典删除
1.pop(key),找到key,并进行移除
2.popitem(),移除并返回任意一个键值对
3.clear(),清空字典
字典遍历
d.keys(),字典中所有的key
d.values(),字典中所有的value
d.items(),字典中k-v组成的二元组(key,value)
缺省字典
collections.defaultdict(factory),提供初始化函数,即当key不存在时使用工厂函数来生成key对应的value
from collections import defaultdict
d = defaultdict(list)#当key不存在时创建一个key,对应的value格式为list
for k in 'abcd':
for i in range(5):
d[k].append(i)
print('d:',d)
#输出
d: defaultdict(<class 'list'>, {'a': [0, 1, 2, 3, 4], 'b': [0, 1, 2, 3, 4], 'c': [0, 1, 2, 3, 4], 'd': [0, 1, 2, 3, 4]})
有序字典
collections.OrderedDict(xxx),可以记录key插入的顺序,打印时按照该顺序输出,从而实现有序
定义为:d = OrderedDict()