Python 字典是一种可变容器模型,可存储任意类型对象,如字符串、数字、元组等其它容器模型。
创建一个字典:
1 >>> di = {1:'jack',2:'tom'} #使用{}创建字典
2 >>> di
3 {1: 'jack', 2: 'tom'}
4 >>> di2 = dict(andy=100,bob=78) #使用工厂方法dict{}创建字典
5 >>> di2
6 {'andy': 100, 'bob': 78}
7 >>> type(di) #查看对象类型
8 <class 'dict'>
9 >>> dir(di2) #查看字典内置的方法。
字典常用方法:
clear()方法:删除字典内所有元素。
1 >>> di = {1:'jack','a':100}
2 >>> di
3 {1: 'jack', 'a': 100}
4 >>> di.clear() #删除字典里面所有的元素
5 >>> di #查看结果
6 {}
7 >>>
copy()方法:返回一个字典的浅复制。
1 >>> d1 = dict(a=1,b=2) #创建一个字典
2 >>> d2 = {} #创建一个空字典
3 >>> d2 = d1.copy() #把字典d1的内容复制到字典d2中
4 >>> d2
5 {'a': 1, 'b': 2}
6 >>>
fromkeys(iterable, value=None, /)方法:创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None。里面的参数iterable(可迭代对象)和value都可以使用整型、字符串、列表、元组……
1 >>> di = {'a':1,'b':2} #定义一个字典。
2 >>> di.fromkeys(['test',3],'python') #在字典di中创建新的key与value。因为没有使用变量接,所以最终的字典di不会被修改,当前新创建的key是列表['test',3],当前新创建的value是字符串 'python'
3 {'test': 'python', 3: 'python'}
4 >>> di #验证结果不会被修改
5 {'a': 1, 'b': 2}
6 >>>
7 >>> di = dict(a=1,b=2)
8 >>> di
9 {'a': 1, 'b': 2}
10 >>> di = di.fromkeys('qwer',678) #使用变量di接住新创建的字典
11 >>> di #查看结果,之前字典di的内容已经被新建的内容替换。
12 {'q': 678, 'w': 678, 'e': 678, 'r': 678}
13 >>>
14 >>> a = 'qwer' #定义一个字符串,变量名为a
15 >>> di = {}
16 >>> di
17 {}
18 >>> di = di.fromkeys(a,'python') #新建字典的可迭代对象直接使用变量名a
19 >>> di
20 {'q': 'python', 'w': 'python', 'e': 'python', 'r': 'python'}
21 >>>
22 >>> a = ['q','w','e','r'] #定义一个列表,变量名为a
23 >>> b = 678 #定义一个整型,变量名为b
24 >>> di = {}
25 >>> di
26 {}
27 >>> di = di.fromkeys(a,b) #iterable直接使用a,value使用b
28 >>> di
29 {'q': 678, 'w': 678, 'e': 678, 'r': 678}
30 >>>
31 >>> a = ('q','w','e','r') #定义一个元组,变量名为a
32 >>> b = 'python'
33 >>> di = {}
34 >>> di
35 {}
36 >>> di = di.fromkeys(a,b) #iterable直接使用a
37 >>> di
38 {'q': 'python', 'w': 'python', 'e': 'python', 'r': 'python'}
39 >>>
get(k[,d])方法:返回指定键的值,如果值不在字典中返回默认值(默认值是空)。
1 >>> di = {'a': 32, 'b': 32, 'c': 32}
2 >>> di.get('c') #查看对应key 'a' 的value
3 32
4 >>> di.get('d') #查看对应键 'd'的值,字典里面是没有这个键的,默认返回为空。
5 >>> di
6 {'a': 32, 'b': 32, 'c': 32}
7 >>> di.get('d',666) #查看对应键 'd'的值,字典里面是没有这个键的,返回的值为参数值666。
8 666
9 >>> di
10 {'a': 32, 'b': 32, 'c': 32}
11 >>>
items()方法:以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组数组。
>>> di
{'a': 666, 'b': 666, 'c': 666}
>>> di = {'tom':88,'luck':99}
>>> di.items() #使用items方法。
dict_items([('tom', 88), ('luck', 99)])
>>> a = list(di.items()) #使用list()函数,并且使用变量a接住
>>> a
[('tom', 88), ('luck', 99)]
>>> a[0] #查看列表中的元素,索引[0]
('tom', 88)
>>> a[0][1] #查看列表中的元素,索引为[0][1]
88
>>>
keys()方法:列表返回一个字典所有的键。
1 >>> di = dict(tom=100,jack=99,bob=88)
2 >>> di.keys() #返回字典里面的键。
3 dict_keys(['tom', 'jack', 'bob'])
4 >>> list(di.keys()) #转换成列表,方便使用索引查找。
5 ['tom', 'jack', 'bob']
6 >>>
pop(k[,d])方法:删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 如果指定的key不存,则返回default值。
1 >>> di = dict(tom=88,jack=99,andy=100) #使用工厂方法创建一个字典
2 >>> di
3 {'tom': 88, 'jack': 99, 'andy': 100}
4 >>> di.pop('jack') #删除指定key对应的值
5 99
6 >>> di #查看结果,整个键值对都被删除
7 {'tom': 88, 'andy': 100}
8 >>> di.pop('AAA','表示无奈') #删除一个不存在的键,返回给定的值 '表示无奈'
9 '表示无奈'
10 >>> di
11 {'tom': 88, 'andy': 100}
12 >>>
popitem()方法:随机返回并删除字典中的一对键和值,返回的一一对元组。
1 >>> di = dict(tom=88,jack=99,andy=100,ccc=55)
2 >>> di.popitem() #随机删除一对键值(好像每次都是最后一个),以元组的方式呈现出来
3 ('ccc', 55)
4 >>> a = di.popitem() #使用变量接删除的结果
5 >>> a
6 ('andy', 100)
7 >>> type(a) #查看删除的数据的类型,确定为元组
8 <class 'tuple'>
9 >>> di #查看最终删除后的字典
10 {'tom': 88, 'jack': 99}
11 >>>
setdefault(k[,d])方法:setdefault() 方法和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None。get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键。
1 >>> di = {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55}
2 >>> di.setdefault('jack') #返回指定键对应的值,值是什么类型就返回什么类型。
3 99
4 >>> di.setdefault('jackJACK',9999) #这个键不存在,所以会更新到字典里面。
5 9999
6 >>> di #查看更新后的结果。
7 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55, 'jackJACK': 9999}
8 >>> di.get('tomTOM',8888) #比如get(),这个键也不存在,但是它也会返回一个指定的值,但是不会更新到字典里面。
9 8888
10 >>> di #查看get()后的结果,并没有更新到字典。
11 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55, 'jackJACK': 9999}
12 >>>
update([E, ]**F)方法:把另一个字典的键/值对,更新到新的字典里。
1 >>> di
2 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55}
3 >>> d2 = {'bob','66'}
4 >>> d2.update(di) #把字典di里面的键值对添加到字典di2中
5 >>> d2 #查看结果
6 {'bob', 'ccc', 'tom', 'andy', '66', 'jack'}
7 >>>
values()方法:以列表的形式返回字典中的所有值。
1 >>> di
2 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55}
3 >>> di.values() #返回字典里面所有的值
4 dict_values([88, 99, 100, 55])
5 >>> a = list(di.values()) #使用list()查看返回结果
6 >>> a
7 [88, 99, 100, 55]