signal=torch.rand(1,277,100)
norm=signal[:,1,:].reshape(-1)
dic={3:[-100,100],2:[1900,2000]}
res= [[10,20,3],[9,21,3],[4,8,2],[4,9,2],[4,9,2]]
new_res=res.copy()
for res_s ,res_i in enumerate(res):
norm_error = norm[res_i[0]]-norm[res_i[1]]
min_max = dic[res_i[2]]
if (norm_error>=min_max[0])and(norm_error<=min_max[1]):
pass
else:
new_res.remove(res[res_s])
print(new_res)
值得注意的是一边遍历,一边删除list中的元素,会发生越界的错误。
所以考虑使用 new_res = res.copy() 完全复制一个新的list 进行删除操作,从而不影响list遍历。