如何从字典列表中筛选指定studentId与date对应的assignmentId
筛选指定学生和日期的作业ID
需求说明
从包含作业信息的字典列表中,筛选出studentId等于8426且date为指定值的条目,并输出对应的assignmentId。
原代码问题
你之前的代码错误地直接遍历列表元素并尝试拆分为key, value,但列表中的每个元素是完整的字典,不能这样拆分。需要先遍历列表中的每个字典,再检查字典内的键值条件。
正确实现代码
# 假设作业列表数据存储在diary变量中 target_date = "Fri, 04/11/2022" target_student_id = "8426" for assignment in diary: # 检查当前作业的studentId和date是否匹配目标值 if assignment.get("studentId") == target_student_id and assignment.get("date") == target_date: # 输出符合条件的assignmentId print(assignment["assignmentId"])
代码说明
- 先定义目标学生ID和目标日期,方便后续修改维护
- 遍历列表中的每个作业字典(
assignment) - 使用
get()方法获取键值,可避免因字典缺少对应键而抛出异常(也可直接用assignment["studentId"],但如果字典无该键会报错) - 当两个条件同时满足时,输出该字典对应的
assignmentId
扩展优化
如果需要收集所有符合条件的assignmentId到列表中(而非直接打印),可以这样写:
target_date = "Fri, 04/11/2022" target_student_id = "8426" valid_assignment_ids = [] for assignment in diary: if assignment.get("studentId") == target_student_id and assignment.get("date") == target_date: valid_assignment_ids.append(assignment["assignmentId"]) print("符合条件的作业ID列表:", valid_assignment_ids)
内容的提问来源于stack exchange,提问作者Dead Dog
相关产品推荐
相关产品推荐

