为了账号安全,请及时绑定邮箱和手机立即绑定

将数组传入函数并进行遍历,为何用来遍历的元素变成了整个数组

将数组传入函数并进行遍历,为何用来遍历的元素变成了整个数组

翻翻过去那场雪 2019-02-18 06:27:36
将数组传入函数并进行遍历,arr是np.array数组,t是数字 相关代码 def timereduce(arr,t): print(arr) for q in arr: q-=t if q<0: q=0 print(q) return arr 报错:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()我输出q,发现q变成了整个数组,这是为什么
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

Use a.any() or a.all()

已经给你提示了,用 any 或 all 去操作arr
不要在遍历的过程中改变arr元素的值,效率太低 。

查看完整回答
反对 回复 2019-03-01
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

有点看不懂您的问题.
不过就单从代码来看.
您代码中临时变量q,只会打印最后一次循环时的结果,应该是arr数组中最后一个元素与数字t的差值(若小于0,那么就0).
最后,将原数组arr返回,注意是原数组,因为代码中并没有对原数组进行任何修改.
就这个函数来说,是不会报错的.
是否存在其他变量冲突或者其他问题?请多检查下吧

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 601 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信