【问题标题】:If condition in python not working properly over 2 dimensional array如果python中的条件在二维数组上不能正常工作
【发布时间】:2022-01-16 11:50:25
【问题描述】:

我需要做的是,如果我的二维数组中的任何值大于 0.3,它必须显示有毒,但它总是打印无毒,即使存在更大的值,如 0.6 或 0.4。我从数组中打印了我的值,只是为了查看循环是否存在问题,但这没关系。我打印正确的值

 **for i in range(len( classes)):
      for j in range(len(classes[i])):
            print(classes[i][j])
            if  (classes[i][j] >0.3):
                comment = " toxic"
            else:
                comment = "non toxic"**

【问题讨论】:

  • 如果在发现高于 0.3 的值后发现低于 0.3 的值,变量“comment”将改回“无毒”。例如,尝试在循环中打印有毒/无毒以调试您的程序,而不仅仅是设置注释。
  • 如果你把它放在一个新的contains_toxic函数中,你可以在找到第一个有毒元素后立即返回true
  • 非常感谢你救了我我只是搞砸了 2 天终于解决了非常感谢

标签: python loops for-loop if-statement conditional-statements


【解决方案1】:

一种方法是使用any 函数,如下所示:

if any(element > 0.3 for group in classes for element in group):
    comment = "toxic"
else:
    comment = "non-toxic"

【讨论】:

    【解决方案2】:

    我认为这里的问题是您只使用 1 个变量来处理值列表。如果数字大于 0.3,则变量 comment 将被赋予字符串毒性,但如果数组中的下一个值小于 0.3,则变量 comment 的值将被覆盖。如果您想检查每个变量并根据刚刚检查的值存储一个字符串,请尝试以下操作:

    classes_values = []
    
    for i in range(len( classes)):
        classes_values.append([])
        for j in range(len(classes[i])):
            print(classes[i][j])
            if  (classes[i][j] >4):
                comment = " toxic"
            else:
                comment = "non toxic"
            classes_values[i].append(comment)
    

    【讨论】:

      【解决方案3】:

      更好的方法是使用函数:

      def contains_toxic(classes):
          for group in classes:
              for element in group:
                  if  element > 0.3:
                      return True
          return False
      

      您还可以使用for.. in 结构来简化理解

      但是,any 函数使它成为一个单行函数,并且作为一个内置函数可能性能更好,但您需要了解列表推导。

      istoxic = any(element  > 0.3 for group in classes2 for element in group);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多