文章目录
字典是Python中一种新的数据结构,称之为映射(mapping)。字典的作用就是用来存储对象的容器。列表存储数据性能很好,但是查询数据性能很差。字典中每一个元素都有唯一的一个名字,通过这个名字可以快速查找到指定的元素。
一、创建字典
字典的键必须不可变,可以用数、字符串或元组充当;
字典值可以没有限制地取任何python对象。
创建时如果同一个键被赋值两次,前一个值会被覆盖,保留后一个值。
# 方式一
dic1 = {'key':'value', 'use':'Python'}
dic11 = {} # 空字典
# 方式二
dic2 = dict('key' = 'value', 'use' = 'Python')
dic22 = dict() # 空字典
# 方式三 双值子序列
dic3 = dict([('key', 'value'), ('use', 'Python')])
二、访问字典的值
字典中的关系为一一映射,可以通过键来获取值。
dic = {'key':'value', 'use':'Python'}
dic['key'] # value
当字典中不存在该键值时会抛出异常
dic = {'key':'value', 'use':'Python'}
dic['1']
# KeyError: '1'
三、字典的特殊操作
1. 修改、添加字典的值
dic = {'key':'value', 'use':'Python'}
# 当字典中存在这个键值时修改原来的value值
dic['key'] = 123 # dic = {'key':123, 'use':'Python'}
# 当字典中不存在这个键值时添加到字典中
dic['keys'] = 123 # dic = {'key':123, 'use':'Python', 'keys':123}
2. 判断键值是否在字典内部
dic = {'key':'value', 'use':'Python'}
'key' in dic # 当键值存在于字典时返回True
'key1' in dic # 当键值不存在于字典时返回False
3. 遍历字典的键值
dic = {'key':'value', 'use':'Python'}
for i in dic:
print(i)
# 'key'
# 'use'
四、字典常用函数
1. 求取字典中的键值对数目(len)
dic = {'key':'value', 'use':'Python'}
# len()函数可以用来求取字典的键值对数目
len(dic) # 2
# 魔术方法 面向对象
dic.__len__() # 2
2. 删除字典中的键值对(del)
dic = {'key':'value', 'use':'Python'}
# del()函数可以用来删除字典中的键值对
del(dic['key']) # dic = {'use':'Python'}
五、字典常用方法
1. 根据键值获取值(get)
dic = {'key':'value', 'use':'Python'}
# get(key[,default]) 根据键来获取字典当中的值
# 键存在于字典中则返回键对应的值
dic.get('key') # 'value'
# 不存在则返回default的值(默认为None)
dic.get('key1','没有这个键') # '没有这个键'
2. 添加键值对(setdefault)
dic = {'key':'value', 'use':'Python'}
# setdefault(key[,default])可以向字典当中添加key-value
# 如果Key已经存在字典当中,则返回key的值,不会对字典做任何操作
dic.setdefault('key','Java') # 'value'
# 如果key不存在,则向字典当中添加这个key和value,返回default值
dic.setdefault('dict','123') # '123'
# dic = {'key':'value', 'use':'Python', 'dict':'123'}
3. 添加另一个字典的键值对(update)
dic1 = {1:'a', 2:'b'}
dic2 = {3:'c', 4:'d'}
# update()可以将另一个字典的键值对添加到原来的字典中
dic1.update(dic2) # dic1 = {1:'a', 2:'b', 3:'c', 4:'d'}
# 若传入的字典中有与原字典相同的键,则会覆盖原来的值
dic3 = {5:'e', 1:'f'}
dic1.update(dic3) # dic1 = {1:'f', 2:'b', 5:'e'}
4. 删除字典指定的键值(pop)
dic = {'key':'value', 'use':'Python'}
# pop(key[,default])可以删除指定字典中指定的键值
# key是必选参数,必须给出,default是可选参数,可以不给出
# 键值key在字典中存在,删除dict[key],返回 dict[key]的value值
dic.pop('key') # 'value'
# 当键值key在字典中不存在时,如没有给出default值则抛出异常
dic.pop('key1') # KeyError: 'key1'
# 如果给出default值则返回default值
dic.pop('key1', 'ERROR') # 'ERROR'
5. 随机删除字典中的键值对(popitem)
dic = {'key':'value', 'use':'Python'}
# popitem()会随机删除字典中的一个键值对(一般为最后一个)并返回一个包含键和值的元组
dic.popitem() # ('ues', 'Python')
# 当字典为空时抛出异常
dic1 = {}
dic1.popitem() # KeyError: 'popitem(): dictionary is empty'
6. 清空字典(clear)
dic = {'key':'value', 'use':'Python'}
# clear()会将字典中的键值对全部删除
dic.clear() # dic = {}
7. 字典的浅拷贝(copy)
dic = {'key':'value', 'use':'Python'}
# copy()可以浅拷贝字典给另外一个字典
dic1 = dic.copy() # dic1 = {'key':'value', 'use':'Python'}
8. 遍历字典的键值对(items)
dic = {'key':'value', 'use':'Python'}
# items()可以将字典中的键和值同时提取出来
for i in dic.items():
print(i)
# ('key', 'value')
# ('use', 'Python')
9. 遍历字典的键值(keys)
dic = {'key':'value', 'use':'Python'}
# keys()可以将字典中的键同时提取出来
for i in dic.keys():
print(i)
# 'key'
# 'use'
10. 遍历字典的值(values)
dic = {'key':'value', 'use':'Python'}
# values()可以将字典中的值同时提取出来
for i in dic.values():
print(i)
# 'value'
# 'Python'