首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向量值小于4的所有值加上数字5的循环

向量值小于4的所有值加上数字5的循环
EN

Stack Overflow用户
提问于 2012-10-17 02:56:31
回答 4查看 96关注 0票数 1

如果向量中的一个数字小于4,我尝试将5加到这个向量中。我觉得我非常接近,但它运行不正确。有没有人能帮我把向量中任何小于4的值加上5?

代码语言:javascript
复制
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])
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-17 03:18:45

你所拥有的就是你所描述的。看起来你是python的新手,可能是编程新手。

由于以下原因,代码有点令人困惑。

  1. 定义一个名为numberlist的全局变量,并为其分配一个数字数组。
  2. 函数x的参数再次命名为numberlist
  3. 调用x时,传递一个数组,该数组的值与开始时分配给全局变量numberlist的值相同。

需要注意的要点:

  • 全局变量numberlistx的参数numberlist是两个完全不同的变量。这样做的结果是,在函数x中不能访问全局变量numberlist。实际上,您并没有在任何地方使用全局变量numberlist。如果你想使用全局变量numberlist并把它传递给x,而不是x([3.2,6,7.8,1,3,2.5]),你只需要做x(numberlist).
  • You
  • xnumberlist参数重命名为其他的参数。例如,导入。
  • 您实际上不需要在顶部使用mylist语句。

考虑到这些因素,您的代码更具可读性,如下所示:

代码语言:javascript
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2012-10-17 02:59:15

怎么样

代码语言:javascript
复制
x = [ v + 5 if v < 4 else v for v in x ]
票数 4
EN

Stack Overflow用户

发布于 2012-10-17 03:14:13

如果我对PyLab的理解是正确的,那么你应该有一个可用的numpy数组,并且应该避免for循环和使用数组操作……

代码语言:javascript
复制
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]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12921589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档