如果向量中的一个数字小于4,我尝试将5加到这个向量中。我觉得我非常接近,但它运行不正确。有没有人能帮我把向量中任何小于4的值加上5?
from pylab import *
numberlist = [3.2,6,7.8,1,3,2.5]
def x(numberlist):
for num in numberlist:
if num > 4:
print(num)
else :
print(num + 5)
print x([3.2,6,7.8,1,3,2.5])发布于 2012-10-17 03:18:45
你所拥有的就是你所描述的。看起来你是python的新手,可能是编程新手。
由于以下原因,代码有点令人困惑。
numberlist的全局变量,并为其分配一个数字数组。x的参数再次命名为numberlist。x时,传递一个数组,该数组的值与开始时分配给全局变量numberlist的值相同。需要注意的要点:
numberlist和x的参数numberlist是两个完全不同的变量。这样做的结果是,在函数x中不能访问全局变量numberlist。实际上,您并没有在任何地方使用全局变量numberlist。如果你想使用全局变量numberlist并把它传递给x,而不是x([3.2,6,7.8,1,3,2.5]),你只需要做x(numberlist).x的numberlist参数重命名为其他的参数。例如,导入。mylist语句。考虑到这些因素,您的代码更具可读性,如下所示:
def x(mylist):
for num in mylist:
if num > 4:
print(num)
else :
print(num + 5)
numberlist = [3.2,6,7.8,1,3,2.5]
print x(numberlist)发布于 2012-10-17 02:59:15
怎么样
x = [ v + 5 if v < 4 else v for v in x ]发布于 2012-10-17 03:14:13
如果我对PyLab的理解是正确的,那么你应该有一个可用的numpy数组,并且应该避免for循环和使用数组操作……
from pylab import * # which should bring numpy ndarray into scope!?
a = ndarray( [3.2,6,7.8,1,3,2.5] )
a[a < 4] += 5.
print a
# [ 8.2 6. 7.8 6. 8. 7.5]https://stackoverflow.com/questions/12921589
复制相似问题