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

如何遍历字典列表取值并转为字符串?含for循环与列表推导实现

提取字典列表中的姓名并拼接成字符串

问题背景

你手头有一个存储作者信息的字典列表:

authors = [ {'id': 1, 'name': 'Grace Hopper'}, {'id': 2, 'name': 'Karl Marx'} ]

想要得到目标输出:'Grace Hopper, Karl Marx',但当前的嵌套循环代码把每个字典的所有值(包括id)都打印出来了,我们可以通过两种方式修正这个问题。


方法一:使用普通for循环实现

核心思路是只提取每个字典里的name字段,先把这些名字收集到一个列表中,最后用逗号加空格拼接成字符串:

authors = [ {'id': 1, 'name': 'Grace Hopper'}, {'id': 2, 'name': 'Karl Marx'} ]

# 初始化一个空列表用来存名字
name_collection = []
for author_dict in authors:
    # 直接通过键'name'获取对应的值,添加到列表里
    name_collection.append(author_dict['name'])

# 用', '拼接列表中的所有元素
final_result = ', '.join(name_collection)
print(final_result)  # 输出: Grace Hopper, Karl Marx

你之前的嵌套循环会遍历每个字典的所有键值对,所以才会把id也输出。现在我们跳过id,只取需要的name值,就能得到想要的结果。


方法二:使用列表推导式实现

如果想要更简洁的写法,列表推导式可以一行完成名字的收集,再配合join方法生成目标字符串:

authors = [ {'id': 1, 'name': 'Grace Hopper'}, {'id': 2, 'name': 'Karl Marx'} ]

# 列表推导式收集所有name值,再拼接
final_result = ', '.join([author['name'] for author in authors])
print(final_result)  # 输出: Grace Hopper, Karl Marx

如果处理的是非常大的列表,还可以用生成器表达式替代列表推导式,这样不会一次性把所有名字加载到内存里,更高效:

final_result = ', '.join(author['name'] for author in authors)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:14:08