字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 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 30006.更新字典中的元素
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)]