字典 (dict)

概念

  • 字典和列表、元组类似,都是容器类型。
  • 列表/元组:使用数字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)

注意

  1. 键(Key)必须唯一,不能重复;值(Value)可以重复
  2. 如果写重复的键,后面的内容直接覆盖前面
# 两个"a"重复,后面 "new A" 覆盖前面的"A"
books = {"a":"A","b":"B","a":"new A"}
print(books.get("a")) # new ACode language: PHP (php)

易错点

  1. KeyError: 'C':字典只有小写键"c",访问大写"C",键不存在。
  2. 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:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注