新手必看:Python字典入门——键值对与遍历技巧

一、字典是什么?

在Python中,字典(Dictionary)是一种键值对形式的数据结构,它就像我们现实生活中的“通讯录”——通过一个唯一的键(Key) 就能快速找到对应的值(Value)。比如,我们可以用“姓名”作为键,存储“年龄”“电话”等信息作为值,这样比用列表(通过索引访问)更直观。

举个例子:如果要记录一个学生的信息,用列表可能需要 [["name", "小明"], ["age", 18]],而用字典则是 {"name": "小明", "age": 18},后者直接通过键名就能访问,比如 student["name"] 就能得到“小明”。

二、创建字典:最简单的方式是用大括号

字典由键(Key)值(Value) 组成,键和值用冒号 : 分隔,键值对之间用逗号 , 分隔,整体放在大括号 {} 中。

示例:

# 用大括号创建字典
student = {
    "name": "小明",
    "age": 18,
    "score": 95,
    "hobbies": ["篮球", "编程"]  # 值可以是任意类型,包括列表
}

注意:
- 键必须是不可变类型(如字符串、数字、元组),不能用列表、字典等可变类型作为键(否则会报错)。
- 值可以是任意类型(数字、字符串、列表、字典等)。

三、访问字典中的元素:通过键名“查值”

要获取字典中的值,直接用键名加中括号 [] 即可。如果键不存在,会报错 KeyError,因此推荐用 get() 方法(更安全,不存在时返回 None 或自定义默认值)。

示例:

student = {"name": "小明", "age": 18, "score": 95}

# 1. 直接用键访问(键不存在会报错)
print(student["name"])  # 输出:小明
# print(student["gender"])  # 报错!KeyError: 'gender'

# 2. 用get()方法(更安全,不存在时返回None或指定默认值)
print(student.get("age"))       # 输出:18
print(student.get("gender", "未知"))  # 输出:未知(不存在时返回默认值“未知”)

四、修改、添加与删除元素

字典是可变的,可以随时修改或添加键值对,也能删除元素。

  • 修改/添加:如果键已存在,赋值会修改值;如果键不存在,赋值会新增键值对。
  student = {"name": "小明", "age": 18}

  # 修改已有键的值
  student["age"] = 19  # 把年龄改为19
  print(student)  # 输出:{'name': '小明', 'age': 19}

  # 添加新键值对
  student["score"] = 95  # 新增分数
  print(student)  # 输出:{'name': '小明', 'age': 19, 'score': 95}
  • 删除元素:用 del 语句或 pop() 方法。
  student = {"name": "小明", "age": 18, "score": 95}

  # 1. del语句(直接删除键值对,无返回值)
  del student["age"]  # 删除年龄
  print(student)  # 输出:{'name': '小明', 'score': 95}

  # 2. pop()方法(返回被删除的值,可指定默认值)
  age = student.pop("score")  # 删除分数并返回95
  print(student)  # 输出:{'name': '小明'}
  print(age)      # 输出:95

五、遍历字典:三种常用技巧

遍历字典时,我们需要关注键(Key)值(Value)键值对(Key-Value)。Python提供了三种遍历方式:

  1. 遍历所有键(Key):用 for key in 字典字典.keys()
   student = {"name": "小明", "age": 18, "score": 95}

   for key in student:
       print(key)  # 输出:name, age, score(Python 3.7+ 按插入顺序)
  1. 遍历所有值(Value):用 for value in 字典.values()
   for value in student.values():
       print(value)  # 输出:小明, 18, 95
  1. 遍历所有键值对(Key-Value):用 for key, value in 字典.items()
   for key, value in student.items():
       print(f"{key}: {value}")  # 输出:name: 小明, age: 18, score: 95

六、字典的常用小技巧

  • 判断键是否存在:用 in 操作符。
  student = {"name": "小明", "age": 18}
  print("name" in student)  # 输出:True(键存在)
  print("gender" in student)  # 输出:False(键不存在)
  • 获取字典长度:用 len()
  print(len(student))  # 输出:2(两个键值对)
  • 合并字典:用 update() 方法,合并后会覆盖重复的键。
  dict1 = {"a": 1, "b": 2}
  dict2 = {"b": 3, "c": 4}
  dict1.update(dict2)  # 合并dict2到dict1
  print(dict1)  # 输出:{'a': 1, 'b': 3, 'c': 4}(b的值被覆盖)

七、总结

字典是Python中灵活且高效的数据结构,核心是键值对,通过键快速访问值,适合存储“关联数据”(如用户信息、配置参数)。掌握以下关键点:
- 用 {}dict() 创建字典,键必须是不可变类型(字符串、数字、元组)。
- 用 字典[key]字典.get(key) 访问值,get() 更安全。
- 通过赋值修改/添加元素,用 delpop() 删除元素。
- 遍历用 for key in 字典for value in 字典.values()for key, value in 字典.items()

多动手尝试,就能熟练运用字典解决实际问题啦!

小夜