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()排序

隨機刪除,並獲取刪除的鍵值以元組形式返回索引

相關文章
相關標籤/搜索