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

如何根据字典值打印对应键?代码输出空列表问题排查

问题原因及解决方案

你的代码核心问题出在list_courses函数的列表推导式判断条件上:

c_list = [k for k, v in c_roster.items() if id_ == v]

这里的v是对应课程的学生ID列表(比如CSC102对应的['1001']),而id_是你输入的字符串(比如'1001')。你拿字符串和列表做相等比较,这两个类型完全不同,永远不可能相等,所以筛选结果必然是空列表。

修正方法

把判断条件改成id_ in v,这样就能检查输入的学生ID是否存在于当前课程的学生列表中:

def list_courses(id_, c_roster):
    print('Courses registered:')
    c_list = [k for k, v in c_roster.items() if id_ in v]
    print(c_list)

测试示例

  • 输入1001,输出:['CSC102']
  • 输入1003,输出:['CSC101']
  • 输入1002,输出:['CSC103']
  • 输入1004,输出:['CSC101']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:20:39