python的字典是一种可变容器模型,且可存储任意类型对象。字典是无序的,没有索引。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
1 >>> d = {'k1':'v1','k2':'v2',} 2 >>> d 3 {'k2': 'v2', 'k1': 'v1'} 4 >>>
在字典里面,键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
1 >>> d = {'k1':'v1','k2':'v2','2':5,} 2 >>> d['2'] 3 5 4 >>>
创建字典:
创建空字典:
1 >>> d = dict() 2 >>> d 3 {} 4 >>> d1 = {} 5 >>> d1 6 {} 7 >>>
创建非空字典:
1 >>> d = {'name':'admin','gender':'man','job':'python',} 2 >>> d 3 {'job': 'python', 'gender': 'man', 'name': 'admin'} 4 >>>
注意:在创建字典时,键名一定是不可变的(如数字,字符串等),并且若同一个键名被创建n(n>1)次,则该键前面所有的值都会被后一个值覆盖,到最后只留下最后一次赋予的值。
1 >>> d = {'name':'admin','job':'python','name':'root',} 2 >>> d['name'] 3 'root' 4 >>> d 5 {'job': 'python', 'name': 'root'} 6 >>>
访问字典里面的值:
1 >>> d = {'name':'admin','gender':'man','job':'python',} 2 >>> d['name'] 3 'admin' 4 >>> d['job'] 5 'python' 6 >>>
字典更新:
若键存在,则更新对应的值,若不存在,直接添加键值对
1 >>> d = {'job': 'python', 'gender': 'man', 'name': 'admin'} 2 >>> d['name'] = 'root' 3 >>> d 4 {'job': 'python', 'gender': 'man', 'name': 'root'} 5 >>> d['age'] = 22 6 >>> d 7 {'job': 'python', 'gender': 'man', 'name': 'root', 'age': 22} 8 >>>
删除字典:
删除单个元素:
1 >>> d = {'job': 'python', 'gender': 'man', 'name': 'root'} 2 >>> del d['gender'] 3 >>> d 4 {'job': 'python', 'name': 'root'} 5 >>>
删除整个字典:
>>> d1 = {'job': 'python', 'name': 'root'} >>> del d1 >>> d1 Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> d NameError: name 'd1' is not defined
清空字典所有元素:
1 >>> d = {'job': 'python', 'gender': 'man', 'name': 'root'} 2 >>> d.clear() 3 >>> d 4 {} 5 >>>
注意:
1、要判断一个字符串是否是字典的键,直接用in即可。
1 >>> d = {'a':1, 'b':2} 2 >>> 'a' in d 3 True 4 >>> 'v' in d 5 False 6 >>>
2、字典中的键可以是数字,字符串,对象等。若一个键是数字,另一个键是字符串,其内的数字与另一个键相同,他们是不同的键值对:
1 >>> d = {1:2, '1':3} 2 >>> d[1] 3 2 4 >>> d['1'] 5 3 6 >>>
字典的内置函数和方法:
内置函数:
1 len(dic) 2 '''返回字典键的个数''' 3 str(dic) 4 '''输出字典,以可打印的字符串表示''' 5 type(dic) 6 '''返回输入对象的类型,字典就返回字典类型'''
字典的方法:
1 '''字典内置方法''' 2 3 get() 4 '''传入键名或键名和默认值,返回指定键的关联值,若指定键不存在,则返回默认值。eg:d.get('x',99)''' 5 keys() 6 '''以迭代器的形式返回字典中的所有键,所得的列表中的每个条目肯定唯一''' 7 values() 8 '''以迭代器形式返回字典里面的所有的值,所得列表中的每个条目不一定唯一''' 9 items() 10 '''返回(key,value)列表''' 11 update() 12 '''用另一个字典的内容对当前字典进行更新''' 13 pop() 14 '''pop(k [, d]) 这个可以不传递值,默认删除并返回最后一个键值对的值,传入一个k,则返回k的值。若键名k不存在,且没有设置默认值d,就会报错,若设置了d就返回d''' 15 popitem() 16 '''删除,并且返回一个键值对(key,value)形式。如果字典已经为空,却调用了此方法,就报出KeyError异常。''' 17 copy() 18 '''返回一个字典的浅赋值''' 19 dict.fromkeys(seq[, val]) 20 '''创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值''' 21 setdefault(key, default=None) 22 '''和get()类似, 但如果键不存在于字典中,将会添加键到原字典并将值设为default,同时返回default'''