Python基本数据类型之字典dict
字典dict
是一个键(key)值(value)对,结构为{},大括号
创建字典
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 删除的
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循环
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循环获取值values
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则用items
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() 随机删除,并获取删除的键值以元组形式返回 |