Python脚本求助:筛选数组中小于24.75的值时仅返回[0]
问题分析与修复方案
错误根源:你写的
for i in [0,len(array)]是在遍历[0, 数组长度]这个仅含两个元素的列表,根本没去遍历目标数组里的元素。所以循环只检查了0和数组长度这两个值,自然只会把符合条件的0加进去。另外,list是Python内置的列表类型,别用它当变量名,容易引发意外问题。修复方案1:直接遍历数组元素
这是最简洁的写法,直接循环数组里的每个值:
# 避免用list当变量名,改用filtered_list filtered_list = [] # 直接遍历目标数组的每个元素 for num in array: if num < 24.75: filtered_list.append(num) print(filtered_list)
- 修复方案2:通过索引遍历(适用于需要用到索引的场景)
如果你的逻辑里需要用到元素的索引,可以用range(len(array))生成索引序列,再通过索引取数组元素:
filtered_list = [] for i in range(len(array)): num = array[i] if num < 24.75: filtered_list.append(num) print(filtered_list)
- 进阶写法:列表推导式
Python里还能用一行代码完成这个需求,更简洁高效:
filtered_list = [num for num in array if num < 24.75] print(filtered_list)
内容的提问来源于stack exchange,提问作者user21128961
相关产品推荐
相关产品推荐

