字典是另一种可变容器模型,且可存储任意类型对象。
key与value 允许存储任意类型对象
但key 不支持 list列表、字典等可变类型
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {}
1、定义字典对象
d = {'l': {'a', 1, 2}, 's': 'str', 3: 3, 'list': [1, 2, 3, 4], ('2', 4): 2}
2、元素访问
如果访问的key不存在,则会抛出异常
d = {'l': {'a', 1, 2}, 's': 'str', 3: 3,'list': [1, 2, 3, 4],('2', 4): 2}for key in d:print(key)
针对key的遍历
l
s
3
list
('2', 4)
3、元素删除
如果key不存在,则抛出异常
del 关键词可以删除字典中的元素,或者字典对象本身。
一旦对象本身被删除,将无法使用
d = {'l': {'a', 1, 2}, 's': 'str', 3: 3,'list': [1, 2, 3, 4],('2', 4): 2 }del d['l'] # 删除键是'Name'的条目
print(d)d.clear() # 清空字典所有条目
print(d)del d # 删除字典
print(d)
{'s': 'str', 3: 3, 'list': [1, 2, 3, 4], ('2', 4): 2}
{}
Traceback (most recent call last):
File "E:\workspace\python-demo\base\demo_list.py", line 23, in <module>
print(d)
^
NameError: name 'd' is not defined. Did you mean: 'id'?
4、字典内置函数&方法
Python字典包含了以下内置函数:
序号 | 函数及描述 |
---|---|
1 | cmp(dict1, dict2) 比较两个字典元素。 |
2 | len(dict) 计算字典元素个数,即键的总数。 |
3 | str(dict) 输出字典可打印的字符串表示。 |
4 | type(variable) <class 'dict'> 返回输入的变量类型,如果变量是字典就返回字典类型。 |
Python字典包含了以下内置方法:
序号 | 函数及描述 |
---|---|
1 | dict.clear() 删除字典内所有元素 |
2 | dict.copy() 返回一个字典的浅复制 |
3 | dict.fromkeys(seq[, val]) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
4 | dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值 |
5 | dict.has_key(key) |
6 | dict.items() dict_items([('s', 'str'), (3, 3), ('list', [1, 2, 3, 4]), (('2', 4), 2)]) |
7 | dict.keys() 以列表返回一个字典所有的键 |
8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 | dict.values() 以列表返回字典中的所有值 |
11 | pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 | dict.popitem() 返回并删除字典中的最后一对键和值。 |