Python基本数据类型之字典dict

字典dict

是一个键(key)值(value)对,结构为{},大括号python

建立字典数组

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
info = {                 # k1 k2 k3 k4为键                      
     "k1" : 18 ,              # :后面分别为值    逗号为分隔符
     "k2" : True ,                     # 数字,布尔值也能够做为键
     "k3" : [
         11 ,
         [],
         (),
         22 ,
         33 ,
         {
             'kk1' : 'vv1' ,
             'kk2' : 'vv2' ,
             'kk3' : ( 11 , 22 ),
         }
     ],
     "k4" : ( 11 , 22 , 33 , 44 )
 
}

字典的值能够是任何值函数

  • 列表,字典不能做为字典的key
  • 字典是无序的
  • 字典不能被切片,由于它是无序的;可根据索引取值,查找,找到元素
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
info = {
     "k1" : 18 ,
     "k2" : True ,
     "k3" : [
         11 ,
         [],
         (),
         22 ,
         33 ,
         {
             'kk1' : 'vv1' ,
             'kk2' : 'vv2' ,
             'kk3' : ( 11 , 22 ),
         }
     ],
     "k4" : ( 11 , 22 , 33 , 44 )
 
}
v = info[ 'k1' ]
print (v)
 
$ 18

字典是支持del 删除的post

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
info = {
     "k1" : 18 ,
     "k2" : True ,
     "k3" : [
         11 ,
         [],
         (),
         22 ,
         33 ,
         {
             'kk1' : 'vv1' ,
             'kk2' : 'vv2' ,
             'kk3' : ( 11 , 22 ),
         }
     ],
     "k4" : ( 11 , 22 , 33 , 44 )
 
}
del info[ 'k1' ]
print (info)
 
 
$ { 'k4' : ( 11 , 22 , 33 , 44 ), 'k3' : [ 11 , [], (), 22 , 33 , { 'kk1' : 'vv1' , 'kk3' : ( 11 , 22 ), 'kk2' : 'vv2' }], 'k2' : True }

支持for循环spa

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
info = {
     "k1" : 18 ,
     "k2" : True ,
     "k3" : [
         11 ,
         [],
         (),
         22 ,
         33 ,
         {
             'kk1' : 'vv1' ,
             'kk2' : 'vv2' ,
             'kk3' : ( 11 , 22 ),
         }
     ],
     "k4" : ( 11 , 22 , 33 , 44 )
 
}
for item in info:
     print (item)
 
 
$ k4
$ k2         info是字典类型
$ k1           默认 for 循环只有key
$ k3                可是输出结果键每次排序都不一样,由于字典是无序的

用for循环获取值valuescode

?
1
2
3
4
5
6
7
8
9
代码接上
for item in info.values():
     print (item)
 
 
$ ( 11 , 22 , 33 , 44 )
$ [ 11 , [], (), 22 , 33 , { 'kk3' : ( 11 , 22 ), 'kk2' : 'vv2' , 'kk1' : 'vv1' }]
$ True
$ 18                           

既想获取key又想获取value则用itemsblog

?
1
2
3
4
5
6
7
8
9
代码接上
for item in info.items():
     print (item)
 
                                      # keys和values均可以得到
$ ( 'k1' , 18 )
$ ( 'k4' , ( 11 , 22 , 33 , 44 ))
$ ( 'k2' , True )
$ ( 'k3' , [ 11 , [], (), 22 , 33 , { 'kk2' : 'vv2' , 'kk3' : ( 11 , 22 ), 'kk1' : 'vv1' }])                   

字典的方法(魔法)

序号 函数及描述
1 dict.clear()
删除字典内全部元素
2 dict.copy()
返回一个字典的浅复制
3 dict.fromkeys()
建立一个新字典,以序列seq中元素作字典的键,val为字典全部键对应的初始值
4 dict.get(key, default=None)
返回指定键的值,若是值不在字典中返回default值
5 key in dict
若是键在字典dict里返回true,不然返回false
6 dict.items()
以列表返回可遍历的(键, 值) 元组数组
7 dict.keys()
以列表返回一个字典全部的键
8 dict.setdefault(key, default=None)
和get()相似, 但若是键不存在于字典中,将会添加键并将值设为default
9 dict.update({'k1':'v1'} OR k1=v1)
把字典dict2的键/值对更新到dict里
10 dict.values()
以列表返回字典中的全部值
11

dict.popitem()排序

随机删除,并获取删除的键值以元组形式返回索引

相关文章
相关标签/搜索