字典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() 随机删除,并获取删除的键值以元组形式返回 |