longxd

导航

 

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]

 

posted on 2018-03-16 17:31  longxd  阅读(158)  评论(0编辑  收藏  举报