You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中for循环访问字典值是否有简写方式?

Python中遍历字典列表值的简写方式

我有如下示例代码:

dict_list = [{"name": "testdata"}, {"name": "testdata2"}]

for x in dict_list:
    print(x["name"])

我希望能将字典键直接写在for循环行中,例如:

dict_list = [{"name": "testdata"}, {"name": "testdata2"}]

for x in dict_list["name"]:
    print(x)

显然这段代码无法运行,但核心需求是让x直接成为字符串"testdata"或"testdata2",同时避免以下写法:

dict_list = [{"name": "testdata"}, {"name": "testdata2"}]

for x in dict_list:
    x = x["name"]

请问Python中for循环访问字典值是否存在这样的简写方式?

当然有几种简洁的写法能满足你的需求:

1. 生成器表达式(推荐)

直接在for循环的in后面用生成器表达式提取每个字典的name值,既简洁又省内存:

dict_list = [{"name": "testdata"}, {"name": "testdata2"}]

for x in (item["name"] for item in dict_list):
    print(x)

生成器表达式不会提前把所有值加载到内存里,处理大量数据时更高效。

2. 列表推导式

如果需要先把所有name值存成一个列表再遍历,可以用列表推导式:

dict_list = [{"name": "testdata"}, {"name": "testdata2"}]

for x in [item["name"] for item in dict_list]:
    print(x)

这种方式会先生成完整的列表,适合需要多次复用这个值集合的场景。

3. map()函数配合lambda

用map()函数把列表里的每个字典映射成对应的name值,再遍历:

dict_list = [{"name": "testdata"}, {"name": "testdata2"}]

for x in map(lambda item: item["name"], dict_list):
    print(x)

写法简洁,但可读性不如前两种,适合习惯函数式编程的场景。

另外提醒下:别用dict当变量名,这是Python内置字典类型的名称,容易引发意外bug,改成dict_list这类名字更稳妥。

内容的提问来源于stack exchange,提问作者orangenhaft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:15:42