Python代码出现C0206错误(consider-using-dict-items)的原因及修复
解决Pylint C0206错误:Consider iterating with .items()
错误原因
你触发的C0206是Pylint的代码规范提醒:当前你遍历字典pre_output时,先循环字典的键,再通过k = pre_output[i]取值,这种写法多了一次字典查找操作。Pylint推荐用.items()方法,能同时拿到键和对应的值,代码更简洁,效率也更高。
修复方法
把第52行开始的循环段改成下面这样:
for i, k in pre_output.items(): # 直接获取键i和对应的值k tmp_list = [i] before = int(k[0]) total = 0 for j in k: if j == '': continue j = int(j) total += j - before before = j tmp_list.append(total) output.append(tmp_list)
这样就可以删掉k = pre_output[i]这行代码,同时解决Pylint的C0206错误。
顺带纠正代码里的逻辑问题
原代码内层循环存在缩进错误:
for j in k: if j == '': continue j = int(j) total += j - before before = j
这段代码里,j = int(j)及后续代码不在循环内部,只会处理k的最后一个非空元素,根本达不到累加计算的目的。上面的修复代码已经把这部分代码缩进修正到循环体内,这样才能逐个处理k里的每个非空值,正确计算total。
内容的提问来源于stack exchange,提问作者user20352630
相关产品推荐
相关产品推荐

