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

Python遍历字典列表打印键值对仅输出键该如何解决

错误原因
  • 遍历逻辑错误:你使用的是两层嵌套结构,外层为列表,每个元素是字典。直接遍历列表中的字典时,默认只会遍历字典的键,且你直接对字典做key, value拆包,实际是把字典的两个键first_name、last_name分别赋值给了key和value,所以只会输出两个键拼接的结果。另外函数内硬编码遍历全局变量students,没有用到传入的参数somelist,逻辑不通用。
  • 多余None输出:你定义的listd函数没有手动设置返回值,Python函数默认返回None,最后额外加的print(listd(students))就会把这个默认返回的None打印出来。
修正后代码

如果你的字典键固定为first_name和last_name,可以用下面的写法直接输出:

students = [
         {'first_name':  'Michael', 'last_name' : 'Jordan'},
         {'first_name' : 'John', 'last_name' : 'Rosales'},
         {'first_name' : 'Mark', 'last_name' : 'Guillen'},
         {'first_name' : 'KB', 'last_name' : 'Tonel'}
    ]
def listd(somelist):
    # 先遍历列表里的每一个字典
    for item in somelist:
        # 按要求格式拼接输出
        print(f"first_name - {item['first_name']}, last_name - {item['last_name']}")

# 直接调用函数即可,不需要额外加print
listd(students)

如果需要适配字典键不固定的通用场景,可以用下面的写法:

def listd(somelist):
    for item in somelist:
        output_parts = []
        # 遍历字典的所有键值对
        for k, v in item.items():
            output_parts.append(f"{k} - {v}")
        # 拼接所有键值对后输出
        print(', '.join(output_parts))

listd(students)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 19:36:01