目录
Python字典是一种可变、无序且可嵌套的数据类型,用于存储键值对。字典中的每个键(key)都唯一且不可变,它对应一个值(value)。
啥是键值对? 这是计算机/生活中一个非常广泛使用的概念:
举个栗子:
- 学校的每个同学, 都会有一个唯一的学号.
- 知道了学号, 就能确定这个同学.
- 此处 "学号" 就是 "键", 这个 "同学" 就是 "值"
此外字典的创建方式是使用花括号{},并使用冒号将键和值分隔开来。
可以通过以下方式创建一个字典:
a = { } # 空字典
b = dict() # 空字典
print(type(a))
print(type(b))
输出结果展示:
student = { 'id': 1, 'name': 'zhangsan' } # 包含两个键值对的字典
print(student)
输出结果展示:
student = {
'id': 1,
'name': 'zhangsan'
}
student=dict(id=1,name='zhangsan') #左侧是键,右侧是值
print(student)
?输出结果展示:
t=(10,20,30)
print({t:10}) #t是key,10是value。元祖可以作为字典中的key
??输出结果展示:
student = {
'id': 1,
'name': 'zhangsan',
}
print('id' in student)
print('score' in student)
输出结果展示:?
student = {
'id': 1,
'name': 'zhangsan',
}
print(student['id'])
print(student['name'])
输出结果展示:??
student = {
'id': 1,
'name': 'zhangsan',
}
print(student['score'])
?输出结果展示:??
使用 [ ] 可以根据 key 来新增/修改 value
student = {
'id': 1,
'name': 'zhangsan',
}
student['score'] = 90 # 添加键为'score',值为'90'的键值对
print(student)
?输出结果展示:???
student = {
'id': 1,
'name': 'zhangsan',
'score': 80
}
print(student)
student['score'] = 90 # 将score的值修改为90
print(student)
??输出结果展示:???
student = {
'id': 1,
'name': 'zhangsan',
'score': 80
}
print(student)
student.pop('score') # 删除键为'score'的键值对
print(student)
??输出结果展示:???
del
语句删除字典中的键值对?student = {
'id': 1,
'name': 'zhangsan',
'score': 80
}
print(student)
del student['score'] # 删除键为'score'的键值对
print(student)
直接使用 for 循环能够获取到字典中的所有的 key, 进一步的就可以取出每个值了
student = {
'id': 1,
'name': 'zhangsan',
'score': 80
}
# 遍历所有键
for key in student:
print(key)
# 遍历所有值
for value in student.values():
print(value)
# 遍历所有键值对
for key, value in student.items():
print(f'{key}: {value}')
student = {
'id': 1,
'name': 'zhangsan',
'score': 80
}
print(student.keys())
??输出结果展示:??
student = {
'id': 1,
'name': 'zhangsan',
'score': 80
}
print(student.values())
??输出结果展示:???
student = {
'id': 1,
'name': 'zhangsan',
'score': 80
}
print(student.items())
??输出结果展示:????
- 首先不是所有的类型都可以作为字典的 key.
- 字典本质上是一个 哈希表, 哈希表的 key 要求是 "可哈希的", 也就是可以计算出一个哈希值
字典也是一个常用的结构. 字典的所有操作都是围绕 key 来展开的.需要表示 "键值对映射" 这种场景时就可以考虑使用字典.