如何向字典中的列表追加元素?附代码运行异常问题求解
问题分析
原有代码存在两个核心错误:
- 你创建的
student_dictionary是学生姓名到ID的映射字典,每个value都是字符串类型的ID,不存在值为列表的结构,自然无法调用append方法 - 你直接用整个列表
studName、studID作为字典的key查询,这两个列表本身既不是字典的合法key,也不存在对应的键值对,运行时会直接报KeyError
正确实现方案
方案1:字典存储两类列表(匹配你写的追加逻辑)
如果你想要字典里分别存储所有学生的姓名列表、ID列表,创建字典时就要把对应键的值设为列表格式:
studName = ['Joe', 'Mac', 'Bob'] studID = ['123', '456', '789'] # 初始化字典,两个键分别对应姓名、ID列表 student_dictionary = { 'studName': studName, 'studID': studID } print(student_dictionary) # 追加新学生信息 student_dictionary['studName'].append('Tim') student_dictionary['studID'].append('012') print(student_dictionary)
运行输出结果:
{'studName': ['Joe', 'Mac', 'Bob'], 'studID': ['123', '456', '789']} {'studName': ['Joe', 'Mac', 'Bob', 'Tim'], 'studID': ['123', '456', '789', '012']}
方案2:保持姓名到ID的映射结构
如果你就是要存储「学生名:ID」的一一对应键值对,不需要调用append,直接给字典新增键值对即可:
studName = ['Joe', 'Mac', 'Bob'] studID = ['123', '456', '789'] student_dictionary = dict(zip(studName, studID)) print(student_dictionary) # 直接新增键值对 student_dictionary['Tim'] = '012' print(student_dictionary)
运行输出结果:
{'Joe': '123', 'Mac': '456', 'Bob': '789'} {'Joe': '123', 'Mac': '456', 'Bob': '789', 'Tim': '012'}
内容的提问来源于stack exchange,提问作者Paul McCarthy
相关产品推荐
相关产品推荐

