基于字典映射替换嵌套列表元素时结果未生效的问题排查求助
问题排查结果
你的代码存在两处逻辑错误,导致替换逻辑完全未触发:
- 第一处:判断条件逻辑写反。你需要判断当前字母是否为映射字典的键(即待替换的原字符),但代码错误判断为是否属于映射字典的
values()(即替换后的目标字符),因此所有字母都不会进入替换分支 - 第二处:字典变量名引用错误。你定义的映射字典变量名为
mapped_dictionary,但代码调用替换时错写为不存在的repl_dic,即便进入替换分支也会抛出变量未定义报错
修正后代码
lists_before = [['A', 'B', 'C'], ['A', 'D'], ['D', 'E']] mapped_dictionary = {'A': 'G', 'B': 'G', 'C':'F'} lists_after = [] for element in lists_before: new_element = [] for letter in element : # 修正1:判断字母是否为映射字典的键 if letter in mapped_dictionary: # 修正2:使用正确的字典变量名调用 letter = mapped_dictionary.get(letter) new_element.append(letter) lists_after.append(new_element) print(lists_after)
运行后输出结果与你的预期完全一致:[['G', 'G', 'F'], ['G', 'D'], ['D', 'E']]
内容的提问来源于stack exchange,提问作者haegon
相关产品推荐
相关产品推荐

