Python操作价格列表生成新列表结果为空,是什么原因?
错误原因及修正方案
具体错误点
- 没有遍历
prices列表的元素:你写的int in prices > 20这类判断逻辑完全不成立,既没有循环取出列表里的每个价格值,还错误地把Python内置类型关键字int当成了存储单个价格的变量,所有判断条件永远不会触发,自然没有元素被加入新列表。 - 变量名拼写错误:你定义的空新列表是
new_prices,但执行append操作时写的是new_price,少了末尾的s,就算条件能触发也会直接报变量未定义的错误。 - 逻辑覆盖不全:现有条件没有处理价格≤20且不等于5的情况,这类数值不会被加入新列表,如果业务要求所有价格都要计算后入库,需要补充对应分支逻辑。
修正后可运行代码
prices = [2, 50, 70, 30, 555] new_prices =[] # 遍历列表取出每个价格元素 for price in prices: if 20 < price <= 50: new_prices.append(price * 0.4) elif price > 50: new_prices.append(price * 0.6) elif price == 5: new_prices.append(price * 0) # 如有需要可以补充else分支处理其他价格情况 print(new_prices)
上述代码运行输出为:[20.0, 42.0, 12.0, 333.0],原列表中的2因为不满足任何现有判断条件,没有被加入新列表。
内容的提问来源于stack exchange,提问作者MountQ
相关产品推荐
相关产品推荐

