字典
Python中唯一内建的映射类型,每个元素都是一组键值对(key:value),其元素没有位置索引,键值之间用冒号连接
关于键和值
键:可以是任何不可修改类型的数据(不可重复)
值:可以是任何类型的数据
字典中键值对的数量:len()
字典操作
- 查找与特定键相关联的值:dictName[ key ]
- 修改数据:dictName[ key ] = value(若当前的键并不存在,则当前语句相当于创建了一组新的键值对)
- 删除:del命令(可以用于删除某个键值对,也可删除整个字典)
- 检查是否有某键: key in dictName (返回Boolean型数据)
字典方法
- keys():将键以可迭代的dict_keys对象形式返回
- values():将值以可迭代的dict_values对象形式返回
- items():将键值对以可迭代的dict_items对象形式返回
dict1 = {1:'a',2:'b',3:'c'}
list1 = list(dict1.keys())
list2 = list(dict1.values())
list3 = list(dict1.items())
print(list1)
print(list2)
print(list3)
运行结果:
- setdefault(key,default):若搜索的字典包含要搜索的key,则返回对应的value,若找不到,则返回default的值
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.setdefault(1, 0))
print(dict1.setdefault(4, 0))
运行结果:
- update():将另一个字典中所有的键值对一次性添加到当前字典中,若有相同的键,则以另一字典的值更新当前字典
dict1 = {1:'a',2:'b',3:'c'}
dict2 = {1:'zsj',4:'d',5:'e'}
print(dict1)
dict1.update(dict2)
print(dict1)
运行结果:
- clear():将字典中所有条目删除,变成空字典
dict1 = {1:'a',2:'b',3:'c'}
print(dict1)
dict1.clear()
print(dict1)
运行结果:
- pop():弹出并删除键值对(弹出:返回对应的值)
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.pop(1))
print(dict1)
运行结果:
- popitem():弹出一个元素
dict1 = {1:'a',2:'b',3:'c'}
for i in list(dict1.keys()):
#由于字典的长度在变化,所以需要使用list方法将字典的keys保存在一个列表中
print(dict1.popitem())
print(dict1)
运行结果:
- get():返回指定键对应的值(可以设置默认值)
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.get(1, '未找到'))
print(dict1.get(4,'未找到'))
运行结果:
关于字典的遍历
- 用for循环遍历字典时,若in后只写了字典名称,则默认遍历字典的键
dict1 = {1:'a',2:'b',3:'c'}
for i in dict1: #默认遍历字典的键
print(i,dict1[i])
运行结果:
- 若想用for循环遍历字典的值,则使用values()方法
dict1 = {1:'a',2:'b',3:'c'}
for i in dict1.values():
print(i)
运行结果:
3.若想用for循环遍历键值对,则使用items()方法
字典与列表和元组之间的转换
- 列表与字典之间的转换:
字典转列表用list()
列表无法转换成字典 - 元组与列表之间的转换
字典转元组用tuple()
元组无法转换成字典