一、什么是字典
-
字典: 用来存储数据,与列表和元组不一样的是,字典以键值对的形式对数据进行存储,也就是 key 和 value。相当于 Java 中的 Map。
注意: 1、 key 的值不可重复,如果 key 重复了,后一个 key 对于的值会覆盖前一个
2、可以通过 key 实现快速获取,删除,更新对应的 value
3、在Python3.6版本之前,字典的存储顺序是无序的,在Python3.6版本之后字典变为有序
4、字典里的value可以是任意数据类型,但是key只能使用不可变数据类型,一般使用字符串
1.1 字典的创建方式
-
可以通过 {}, dict()来创建字典对象
“ {} ”: 直接使用花括号创建字典
“ dict() ”: 使用 dict() 函数方法创建字典(可以直接定义键值对形式对字典进行创建,也可以通过传入二元组列表对字典进行创建)-
a={'name':'龙仔','age':18,'job':'programmer'} print(a) b=dict(name='龙仔',age=18,job='programmer') print(b) c=dict([("name","longzai"),("age",18)]) print(c) d={} #空的字典对象 print(d) e=dict() #空的字典对象 print(e)
- 运行结果:
- 运行结果:
-
-
fromkeys() :创建值为空的字典
-
a=dict.fromkeys(['name','age','job']) print(a)
- 运行结果:{‘name’: None, ‘age’: None, ‘job’: None}
-
1.2 字典的增删改查操作
1.2.1 字典中的查询操作
-
通过字典的 key 直接获取该 key 对应的值
-
b=dict(name='姚青',age=18,job='programmer') print(b["name"])
- 运行结果:姚青
-
-
通过 get() 函数: 获取该 key 对应的值
-
b=dict(name='姚青',age=18,job='programmer') print(b.get("name"))
- 运行结果:姚青
-
-
items() 函数: 列出字典所有的键值对
-
b=dict(name='龙仔',age=18,job='programmer') print(b.items())
- 运行结果:
- 运行结果:
-
-
keys() 函数: 列出字典所有的 key
-
b=dict(name='龙仔',age=18,job='programmer') print(b.keys())
- 运行结果:
- 运行结果:
-
-
values() 函数: 列出字典所有的 value
-
b=dict(name='龙仔',age=18,job='programmer') print(b.values())
- 运行结果:
- 运行结果:
-
-
len() 函数: 获取当前字典中有多少对键值对
-
b=dict(name='姚青',age=18,job='programmer') print(len(b))
- 运行结果:3
-
-
in 关键字: 判断字典中是否存在当前的 key
-
b=dict(name='姚青',age=18,job='programmer') print("name" in b)
- 运行结果:True
-
1.2.2 字典中的新增和修改操作
-
直接使用Key可以修改对应的value: 如果该key存在,是修改key对应的value 如果key在字典里不存在,会在字典里添加一个新的key-value
-
b=dict(name='姚青',age=18,job='programmer') b["sex"] = "男" print(b)
- 运行结果:{‘name’: ‘姚青’, ‘age’: 18, ‘job’: ‘programmer’, ‘sex’: ‘男’}
-
-
update() 函数: 将新字典中所有键值对全部添加到旧字典对象上,如果key有重复,则直接覆盖
-
a = {'name':'水泽','age':999,'job':'programmer'} b = dict(name='姚青',money = 1000,sex = '男') a.update(b) print(a)
- 运行结果:{‘name’: ‘姚青’, ‘age’: 999, ‘job’: ‘programmer’, ‘money’: 1000, ‘sex’: ‘男’}
-
1.2.3 字典中的删除操作
-
pop() 函数: 根据传入的 key 删除键值对,并且会返回删除值的对象
-
a = {'name': '水泽', 'age': 999, 'job': 'programmer'} x = a.pop("job") print(x + ":被删除了") print("被删除之后的字典:" + str(a))
- 运行结果:
- 运行结果:
-
-
popitem() 函数 : 随机删除一个对象,并且返回对象的key和value
-
a = {'name': '水泽', 'age': 999, 'job': 'programmer'} x = a.popitem() print( str(x)+ ":被删除了") print("被删除之后的字典:" + str(a))
- 运行结果:
- 运行结果:
-
-
del 关键字 : 通过字典的 key 删除对应的 键值对
-
a = {'name': '水泽','age': 999,'job': 'programmer'} del a["job"] print(a)
- 运行结果:
- 运行结果:
-
-
clear() 函数 : 将字典中的全部元素清空
-
a = {'name': '水泽','age': 999,'job': 'programmer'} a.clear() print(a)
- 运行结果:
- 运行结果:
-