字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
1、字典的定义
dict1 = {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘} dict2 = {‘abc‘: 456}; dict3 = {‘abc‘: 123, 10: 20}; dict4 = {} #定义空字典 dict5 = dict() #定义空字典
2、字典的访问
字典的索引就是字典的键值
dict = {‘Name‘: ‘Zara‘, ‘Age‘: 7, ‘Class‘: ‘First‘}; print "dict[‘Name‘]: ", dict[‘Name‘]; print "dict[‘Age‘]: ", dict[‘Age‘]; #运行结果 dict[‘Name‘]: Zara dict[‘Age‘]: 7
3、修改字典条目
键值存在则更改原Value值,键值不存在则增加新的键值对
dict = {"one": 1, "two": 2, "three": 3, }; dict[‘one‘] = 100; # 如存在,则更新存在的条目 dict[‘four‘] = 4; # 如不存在则添加新条目 print "dict[‘one‘]: ", dict[‘one‘]; print "dict[‘four‘]: ", dict[‘four‘]; print dict #运行结果 dict[‘one‘]: 100 dict[‘four‘]: 4 {‘four‘: 4, ‘three‘: 3, ‘two‘: 2, ‘one‘: 100}
4、删除字典
删除包括:删除单个元素、删除所有元素、删除整个字典
dict = {"one": 1, "two": 2, "three": 3,}; del dict[‘one‘]; # 删除键是‘Name‘的条目 print dict dict.clear(); # 清空词典所有条目 print dict del dict; # 删除词典 # print dict #此句会报TypeErro错,应为字典已经不存在了 #运行结果 {‘three‘: 3, ‘two‘: 2} {}
5、字典的常用方法
1、 dict.clear() #删除字典内所有元素
2、 dict.copy() #返回一个字典的浅复制
3、 dict.fromkeys(seq[, val]) #创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4、 dict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值
5、 dict.has_key(key) #如果键在字典dict里返回true,否则返回false
6、 dict.items() #以列表返回可遍历的(键, 值) 元组数组
dict.iteritems(self) #生成一个包含所有键值对的可迭代对象
dict.viewitems(self) -> ItemsView[_KT, _VT]: ...
7、 dict.keys() #以列表返回一个字典所有的键
dict.iterkeys(self) #返回一个包含所有键的可迭代对象
dict.viewkeys(self) -> KeysView[_KT]: ...
8、 dict.values() #以列表返回字典中的所有值
dict.itervalues(self) 返回一个包含所有Value的可迭代对象
dict.viewvalues(self) -> ValuesView[_VT]: ...
9、 dict.setdefault(key, default=None) #和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
10、dict.update(dict2) #把字典dict2的键/值对更新到dict里
11、dict.pop(key[,default]) #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12、dict.popitem() 随机返回并删除字典中的一对键和值。