概念
- 字典和列表、元组类似,都是容器类型。
- 列表/元组:使用数字
0、1、2…作为索引(index)。 - 字典:用名称(键key)做索引,键可以是字母、数字、字符串。
- 结构:
key(键) → value(值),键值对。
创建字典
先创建空字典,再添加元素
# 空字典,花括号{}
menus = {}
# 添加键值对
menus["course"] = "课程"
menus["down"] = "下载"
print(menus)
# 输出 {'course': '课程', 'down': '下载'}
# 修改已有key的值:直接赋值覆盖
menus["down"] = "下载1"
# 新增不存在的key,直接赋值
menus["down1"] = "下载1"Code language: PHP (php)
一次性直接定义字典
# {键:值, 键:值}
books = {"a":"A","b":"B","c":"C"}
# 打印整个字典
print(books)
# 根据key读取值,注意区分大小写!
print(books["c"])
# print(books["C"]) # 大写C不存在,会报 KeyError 错误Code language: PHP (php)
注意:字典的键区分大小写,
"c"和"C"是两个完全不同的键。
keys() 和 values()
.keys():获取字典全部的键,返回字典视图对象,转list()才能看到列表。.values():获取字典全部的值。
books = {"a":"A","b":"B","c":"C"}
# 获取所有键
books_keys = books.keys()
print(list(books_keys)) # ['a', 'b', 'c']
# 获取所有值
books_values = books.values()
print(list(books_values)) # ['A', 'B', 'C']Code language: PHP (php)
get() 获取值
字典.get(key) 读取对应key的值;和[key]区别:
字典[key]:key不存在直接报错KeyError,程序崩溃。字典.get(key):key不存在不会报错,返回None。
books = {"a":"A","b":"B"}
print(books.get("a")) # A
print(books.get("z")) # 不存在,返回 None,不会报错Code language: PHP (php)
注意
- 键(Key)必须唯一,不能重复;值(Value)可以重复。
- 如果写重复的键,后面的内容直接覆盖前面。
# 两个"a"重复,后面 "new A" 覆盖前面的"A"
books = {"a":"A","b":"B","a":"new A"}
print(books.get("a")) # new ACode language: PHP (php)
易错点
KeyError: 'C':字典只有小写键"c",访问大写"C",键不存在。SyntaxError:变量名不能包含减号,books‑keys是错误,下划线books_keys才合法。
小结
| 类型 | 索引方式 | 符号 |
|---|---|---|
| list列表 | 数字0,1,2… | []方括号 |
| dict字典 | 自定义key(字符串) | {}花括号,存储key:value |
示例
# 练习
student = {"name":"Tom","age":18,"gender":"男"}
print(student["name"])
print(student.get("age"))
# 获取全部key、value
print(list(student.keys()))
print(list(student.values()))Code language: PHP (php)
Previous: 列表 (list)