字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 。
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
python字典的基本操作
- 构建一个新的字典
dic={}
dic=dict()
2.字典的基本操作
dic={'zhangsan':1000,'lisi':2000,'wangwu':3000}
- 查找
print(dic['lisi'])
2000
使用get函数进行查找,返回指定键的值,如果值不在字典中返回默认值None。
print(dic.get('lisi')
print(dic.get('zhaoliu')
2000
None
- 替换
dic['lisi']=2020
print(dic)
{'zhangsan': 1000, 'lisi': 2020, 'wangwu': 3000}
- 添加
dic['zhaoliu']=4000
print(dic)
{'zhangsan': 1000, 'lisi': 2000, 'wangwu': 3000, 'zhaoliu': 4000}
- 成员判断
print('zhaoliu' in dic)
False
- 删除字典成员
del(dic['zhangsan'])
print(dic)
{'lisi': 2000, 'wangwu': 3000}
或者使用字典的pop方法
dic.pop('zhangsan')
3.把键和值连接成一个字典
name=['zhangsan','lisi','wangwu']
salary=[1000,2000,3000]
dic=dict(zip(name,salary))
print(dic)
{'zhangsan': 1000, 'lisi': 2000, 'wangwu': 3000}
4.分别获得字典的键和值
print(dic.keys())
print(dic.values())
dict_keys(['zhangsan', 'lisi', 'wangwu'])
dict_values([1000, 2000, 3000])
5.单独输出每一组键和值
for k,v in dic.items():
print(k,v)
zhangsan 1000
lisi 2000
wangwu 3000
6.更新字典中的元素
dic1={'zhangsan':1000,'lisi':2000,'wangwu':3000}
dic2={'zhangsan':1010,'lisi':2000,'zhaoliu':4000}
dic1.update(dic2)
print(dic1)
{'zhangsan': 1010, 'lisi': 2000, 'wangwu': 3000, 'zhaoliu': 4000}
7.字典的复制
dic={'zhangsan':1000,'lisi':2000,'wangwu':3000}
dic1=dic
print(dic)
print(dic1)
{'zhangsan': 1000, 'lisi': 2000, 'wangwu': 3000}
{'zhangsan': 1000, 'lisi': 2000, 'wangwu': 3000}
dic={'zhangsan':1000,'lisi':2000,'wangwu':3000}
dic1=dic.copy()
print(dic)
print(dic1)
{'zhangsan': 1000, 'lisi': 2000, 'wangwu': 3000}
{'zhangsan': 1000, 'lisi': 2000, 'wangwu': 3000}
8.清空字典
- 不仅会清空原来的字典,也会清空复制后的字典
dic={'zhangsan':1000,'lisi':2000,'wangwu':3000}
dic1=dic
dic.clear()
print(dic)
print(dic1)
{}
{}
- 只能清空原来的字典,不能清空复制后的字典
dic={'zhangsan':1000,'lisi':2000,'wangwu':3000}
dic1=dic.copy()
dic.clear()
print(dic)
print(dic1)
{}
{'zhangsan': 1000, 'lisi': 2000, 'wangwu': 3000}
9.字典的fromkeys函数
Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None。
dic={}
name=['zhangsan','lisi','wangwu']
print(dic.fromkeys(name,1000))
{'zhangsan': 1000, 'lisi': 1000, 'wangwu': 1000}
其中name既可以是字符串,列表,也可以是元组,字典,但是name中的元素必须是不可变对象。
10.字典按值排序
reverse=False时候,按照值的升序排列
dic={'zhangsan':3000,'lisi':1000,'wangwu':2000}
dic_order=sorted(dic.items(),key=lambda x:x[1],reverse=False)
print(dic_order)
[('lisi', 1000), ('wangwu', 2000), ('zhangsan', 3000)]
reverse=True,按照值的降序排列
dic={'zhangsan':3000,'lisi':1000,'wangwu':2000}
dic_order=sorted(dic.items(),key=lambda x:x[1],reverse=False)
print(dic_order)
[('zhangsan', 3000), ('wangwu', 2000), ('lisi', 1000)]