如何修改numpy数组处理代码,输出各切片及对应的max、min值
原代码问题梳理
- 冗余定义的
rep变量没有实际使用,属于无效代码 - 列表推导式遍历对象错误,仅遍历了第一个输入数组
arr,没有处理另外两个入参数组 - 没有做输出格式化对齐,也没有设置不同数组输出之间的空行分隔
- 打印逻辑直接嵌套在列表推导式中,写法不规范也无法控制输出格式
修改后可直接运行的代码
import numpy as np def run(arr, arr2, arr3): # 遍历所有输入的数组 for index, current_arr in enumerate([arr, arr2, arr3]): # 按索引逐位切片输出 for count in range(len(current_arr)): slice_part = current_arr[count:] slice_max = slice_part.max() slice_min = slice_part.min() # 格式化输出,固定切片内容占位宽度保证列对齐 print(f"{str(slice_part):<30} max: {slice_max:<4} min: {slice_min}") # 前两个数组输出完加空行分隔,匹配预期格式 if index != 2: print() run(np.array([12,12,-3,-1,2,1]), np.array([-3,-1,-2,1]), np.array([12,-12]))
上述代码运行后可完全匹配你给出的预期输出效果,如果需要调整对齐宽度,修改f-string中的占位数值即可。
内容的提问来源于stack exchange,提问作者georgehere
相关产品推荐
相关产品推荐

