字典特性
字典是一种重要的集合类型,具有如下特性
- 通过键(key),而非位置偏移(下标)来访问数据,键只能是不可变元素(字符串/数字/元组)
- 可以包含任意对象的无序集合
- 可变长度,可容纳不同类型的元素,无序集合
- 属于映射中的可变映射
- 本质是对象引用表(Hash Table)
变量声明
可以使用大括号{}
或dict函数
进行字典声明
dict1 = {'name':'Tom','age':20,'sex':'male'}
dict2 = dict(title='python入门',author='Tom',price=59.33)
已有数据转换为字典类型示例
obj1 = [('name','Tom'),('age':20)]
dict1 = dict(obj1)
keys = ['name','age','sex']
dict2 = dict.fromkeys(keys) # 生成一个指定key集的空字典
常用操作
dict1[key1]
根据key获取字典值,没找到会抛出异常dict1.get('key1'[,'defVal'])
尝试获取字典值,如果没找到,返回None或指定默认值key1 in dict1
判断字典是否包含某个键dict1.keys()
获取字典的键集合视图dict1.values()
获取字典的值集合视图dict1.items()
获取字典的键值对集合视图list(dict1.XXs())
获取XX列表for (k,v) in dict1.items():
遍历字典的键值对len(dict1)
获取字典键值对数量dict1.copy()
返回字典的一个复制(深拷贝)dict1.clear()
清空字典dict1[key1] = val1
给字典元素赋值(或新增元素)dict1.update(dict2)
字典更新合并del dict1['key1']
删除字典元素dict1.pop('key1',None)
尝试删除字典元素,并接受元素值,如果没有找到,返回指定的默认返回值dict1.popitem()
删除并返回字典第一项键值对
字典实现方法库
可以将封装好的方法对象作为值存放在方法字典中,使用时可以根据key获取到需要的方法,实现动态调用
def func1():
print('dongfengyefang')
def func2():
print('huaqianshu')
dict1 = {'part1':func1,'part2':func2}
for part in ['part1','part2']:
dict1[part]()