Python如何遍历列表元素与阈值比较并修复代码语法错误
原代码错误汇总
- Python没有C语言风格的三要素for循环写法,也不需要提前声明变量类型,获取列表长度要使用
len(列表)方法而非size() - 你提供的result列表中所有元素都是字符串类型,还包含空字符串,无法直接和整数类型的阈值做大小比较,需要先做类型转换和空值处理
- 条件判断语法错误:
else后不能追加判断条件,带条件的分支需要使用elif;同时代码中存在变量名拼写错误,前面定义的prctVal在后续判断中写成了practval - 逻辑问题:循环内的risk变量会被每次迭代覆盖,循环外打印只会输出最后一个元素的判断结果,无法得到所有元素的等级
- Python语法中语句结尾不需要加分号
;
正确实现代码
# 定义阈值 T1 = 85 T2 = 80 T3 = 75 # 原始数值列表 result = ['0', '0', '1', '0', '88', '38', '45', '1', '22', '25', '19', '32', '1', '34', ''] # 存储所有元素的风险等级 risk_list = [] for item in result: # 处理空字符串,可根据需求自定义空值对应的风险等级 if not item: risk_list.append("minor") continue # 转换为整数后做判断 num = int(item) if num > T1: risk = "high" elif num < T3: risk = "minor" # 剩余情况自然落在[T3, T2]区间,无需额外判断 else: risk = "major" risk_list.append(risk) # 输出所有元素的风险等级 print(risk_list)
运行结果
['minor', 'minor', 'minor', 'minor', 'high', 'minor', 'minor', 'minor', 'minor', 'minor', 'minor', 'minor', 'minor', 'minor', 'minor']
内容的提问来源于stack exchange,提问作者Charuka
相关产品推荐
相关产品推荐

