当前位置:首页>python>Python 字典详解:一文掌握字典元素的所有访问方法

Python 字典详解:一文掌握字典元素的所有访问方法

  • 2026-10-11 07:40:14
Python 字典详解:一文掌握字典元素的所有访问方法

字典(dict)是 Python 中最常用、最高效的数据结构之一,它以键值对(key-value)的形式存储数据,就像我们平时用的字典——通过「键(单词)」就能快速找到「值(释义)」。

访问字典元素是使用字典的核心操作,今天我用超详细、超易懂的方式,结合大量实例,把所有访问方法讲透,新手也能直接上手!

一、先认识 Python 字典(基础铺垫)

字典用大括号 {} 表示,每个元素是一个 键: 值 对,键值之间用冒号分隔,元素之间用逗号分隔。

特点:

  • 键(key)必须唯一,且不可变(字符串、数字、元组)
  • 值(value)可以是任意数据类型(列表、字典、数字等)
  • 无序(Python 3.7+ 保留插入顺序)

示例字典(下文所有例子都用它):

# 定义一个用户信息字典
user = {
"name": "张三",
"age": 25,
"gender": "男",
"city": "北京",
"hobby": ["读书", "跑步", "编程"]
}

二、访问字典元素的 5 种核心方法

方法1:方括号 [] 直接访问(最常用)

语法:字典名[键名]这是最简单、最常用的方式,直接通过键获取对应的值。

代码示例:

user = {
"name": "张三",
"age": 25,
"gender": "男",
"city": "北京",
"hobby": ["读书", "跑步", "编程"]
}

# 访问单个值
print(user["name"])   # 输出:张三
print(user["age"])    # 输出:25
print(user["hobby"])  # 输出:['读书', '跑步', '编程']

# 访问列表类型的值(嵌套取值)
print(user["hobby"][0])  # 输出:读书

⚠️ 注意:如果访问不存在的键,会直接报错 KeyError!

print(user["email"])  # 报错:KeyError: 'email'

方法2:get() 方法(最安全,推荐新手用)

语法:字典名.get(键名, 默认值)

  • 键存在:返回对应值
  • 键不存在:不报错,返回 None 或自定义默认值

这是生产环境最推荐的访问方式,避免程序崩溃!

代码示例:

user = {"name": "张三", "age": 25, "city": "北京"}

# 键存在,正常取值
print(user.get("name"))  # 输出:张三

# 键不存在,返回 None
print(user.get("email"))  # 输出:None

# 键不存在,返回自定义默认值(实用!)
print(user.get("email", "未填写邮箱"))  # 输出:未填写邮箱
print(user.get("height", 175))          # 输出:175

✅ 优点:容错率高,不会因为键不存在导致程序报错。


方法3:一次性获取 所有键 / 所有值 / 所有键值对

如果需要遍历字典,或批量获取数据,用这 3 个方法:

1. keys():获取所有键

user = {"name": "张三", "age": 25, "city": "北京"}

# 获取所有键
print(user.keys())  # 输出:dict_keys(['name', 'age', 'city'])

# 转列表使用
keys_list = list(user.keys())
print(keys_list)  # 输出:['name', 'age', 'city']

2. values():获取所有值

# 获取所有值
print(user.values())  # 输出:dict_values(['张三', 25, '北京'])

# 转列表
values_list = list(user.values())
print(values_list)  # 输出:['张三', 25, '北京']

3. items():获取所有键值对(最常用!)

返回每个元素为 (键, 值) 的元组,适合遍历字典。

# 获取所有键值对
print(user.items())
# 输出:dict_items([('name', '张三'), ('age', 25), ('city', '北京')])

# 遍历字典(工作中最常用写法)
for key, value in user.items():
    print(f"键:{key},值:{value}")

输出结果:

键:name,值:张三
键:age,值:25
键:city,值:北京

方法4:setdefault() 方法(查询 + 设默认值二合一)

语法:字典名.setdefault(键名, 默认值)

  • 键存在:返回对应值
  • 键不存在:把键值对添加到字典,并返回默认值

代码示例:

user = {"name": "张三", "age": 25}

# 键存在,直接返回值
print(user.setdefault("name", "未知"))  # 输出:张三

# 键不存在,添加到字典并返回默认值
print(user.setdefault("email", "test@163.com"))  # 输出:test@163.com

# 查看字典,email 已被添加
print(user)
# 输出:{'name': '张三', 'age': 25, 'email': 'test@163.com'}

✅ 适用场景:需要给字典补充默认字段时使用。


方法5:嵌套字典的访问(进阶必备)

字典的值可以是另一个字典,这种叫嵌套字典,访问时逐层写键即可。

示例:

# 嵌套字典:用户信息 + 详细地址
student = {
"name": "李四",
"age": 20,
"address": {
"province": "广东",
"city": "深圳",
"district": "南山区"
    }
}

# 访问嵌套字典的值
print(student["address"]["city"])       # 输出:深圳
print(student["address"]["district"])   # 输出:南山区

# 用 get() 安全访问嵌套字典
print(student.get("address", {}).get("province"))  # 输出:广东
print(student.get("address", {}).get("street", "暂无街道信息"))  # 输出:暂无街道信息

三、5 种方法对比总结(一目了然)

访问方法
语法
键不存在时
适用场景
方括号 []
dict[key]
报错 KeyError
确定键一定存在时
get()dict.get(key)
返回 None/默认值
不确定键是否存在(推荐)
keys()dict.keys()
-
获取所有键
values()dict.values()
-
获取所有值
items()dict.items()
-
遍历所有键值对(最常用)
setdefault()dict.setdefault()
添加键值对
查询+设默认值

四、新手必看:3 个避坑提醒

  1. 字典是通过「键」访问,不是通过「索引」
    user = {"name": "张三"}
    print(user[0])  # 报错!不能用数字索引,必须用键
  2. 键必须唯一,重复键会覆盖之前的值
  3. 不确定键是否存在时,**优先用 get()**,不要用方括号

总结

  1. 访问字典元素核心:通过键取值,最常用 [] 和 get()
  2. 安全优先:新手和项目开发必用 get()
  3. 遍历字典:用 items() 同时拿键和值
  4. 嵌套字典:逐层写键 即可访问
  5. 批量获取:keys()/values() 拿所有键/值

看完这篇,Python 字典的访问操作你就完全掌握了!建议收藏,随时翻看~

最新文章

随机文章