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

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

posted @ 2018-05-23 12:38  Hear7  阅读(178)  评论(0编辑  收藏  举报