1、什么是字典
字典是无序可变的对象集合 ,字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型:
- 可以是任意不可变类型
- 通常是字符串或数字
- 如果一个元组只包含字符串、数字或元组,那么这个元组也可以用作键
- 但如果元组直接或间接地包含了可变对象,那么它就不能用作键
- 列表不能用作键
2、语法
使用字典的字面值创建字典
使用 {} 来表示一个字典,里面允许出现若干键值对
代码语言:javascript复制 # 创建空字典 ,两种方法
dict = {}
dict()
# 创建非空字典
{"name":"hua","age":20}
dict({"name":"hua","age":20}
3、增加键值对
代码语言:javascript复制people = {
"name": "华",
"age": "20",
"weight": "65kg"
}
people["sex"] = "男"
print(people)
# 输出结果 {'name': '华', 'age': '20', 'weight': '65kg', 'sex': '男'}
4、删除键值对
- 通过关键字 del
- 通过 .pop(key)
5、修改字典
通过update()
传入的是字典
代码语言:javascript复制# update 栗子一
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
}
book1 = {
"title": "Python 从入门到放弃"
}
# 若传入字典的键是已存在的,则更新原有的值
book.update(book1)
print(book)
book2 = {
"money": 119
}
# 若传入字典的键是不存在的,则添加新的键值对
book.update(book2)
print(book)
# 输出结果
{'title': 'Python 从入门到放弃', 'author': '张三', 'press': '机械工业出版社'}
{'title': 'Python 从入门到放弃', 'author': '张三', 'press': '机械工业出版社', 'money': 119}
传入的是 iterable
代码语言:javascript复制d = {'x': 2}
d.update([('y', 2), ('z', 3)])
print(d)
# 输出结果
{'x': 2, 'y': 2, 'z': 3}
传入的是关键字参数
代码语言:javascript复制d = {'x': 2}
d.update(y=3, z=0)
print(d)
# 输出结果
{'x': 2, 'y': 3, 'z': 0}
6、查询字典
两种传参
- dict.get(key):键存在则返回对应值,不存在则返回 None
- dict.get(key, default):键存在则返回对应值,不存在则返回设置好的 default 值
栗子
代码语言:javascript复制# get
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
}
print(book.get("title"))
print(book.get("books"))
print(book.get("books", "默认值"))
# 输出结果
Python 入门基础
None
默认值
7、读取字典
keys()
作用
返回字典中所有的键
栗子
代码语言:javascript复制# keys
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
}
for key in book.keys():
print(key)
# 输出结果title
author
press
values()
作用
返回字典中所有的值
栗子
代码语言:javascript复制# values
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
}
for value in book.values():
print(value)
# 输出结果
Python 入门基础
张三
机械工业出版社