【问题标题】:Python array elements in if statementif语句中的Python数组元素
【发布时间】:2018-04-24 16:04:52
【问题描述】:

我有一些整数数组和 for 循环。我正在尝试测试数组中的某些特定元素是大于还是小于某个整数。这段代码解释得更好:

array = [1,2,3,4,5]
for i in range(5):
    if array[i] >= 3:
        print(sometext)
    else:
        print(othertext)

但是我得到了一个 ValueError:一个包含多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()

解决方案:我确实正确缩进了它。以上只是我的代码的简化(一些愚蠢的例子)。 我发现错误在哪里。这是因为我用 numpy 将数组初始化为

a = numpy.empty(5) 而不是这样:

a = [0 for i in range(5)]

感谢大家的帮助

【问题讨论】:

  • 请正确缩进您的代码
  • 此链接可能对您有用,可能重复吗? stackoverflow.com/questions/10062954/…
  • 这可能看起来很迂腐,但这不是一个数组,而是一个list。但是,您的错误消息似乎来自numpy。您应该提供minimal reproducible example,尽管您的问题几乎可以肯定是重复的
  • 这不是一个数组,而是一个名称为数组的列表

标签: python arrays list if-statement


【解决方案1】:

你应该遍历数组本身:

array = [1, 2, 3, 4, 5]

for item in array:
    if item >= 3:
        print("yes")
    else:
        print("no")

【讨论】:

    【解决方案2】:

    它以适当的意图对我有用:

    >>> array = [1,2,3,4,5]
    >>> for i in range(5):
    ...     if array[i] >= 3:
    ...             print("Yes")
    ...     else:
    ...             print("No")
    ...
    

    【讨论】:

      【解决方案3】:

      你得到的错误基本上是由于 INDENTATION 。 Python 严格遵循缩进,这意味着它只会执行在该特定 Block 中编写的代码。有关详细信息,请参阅Python Indentation Rule。 谢谢你。快乐编码。

      【讨论】:

      • 我确实在我的代码中正确缩进了它,但是很抱歉,这里没有。
      【解决方案4】:

      这并不是你所描述的最 Pythoninc 的方式。

      array = [1,2,3,4,5]
      for element in array:
          if element >= 3:
              print("Yes")
          else:
              print("No")
      

      参考:https://wiki.python.org/moin/ForLoop

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-20
        • 2016-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多