【问题标题】:How to iterate over a function如何迭代一个函数
【发布时间】:2020-07-04 03:21:38
【问题描述】:

这是我的代码:

def background(arr2,arr3):

    for i in arr3:
        for j in arr2:
            i = 0
            j = 0
            left_points = x<(arr3[i])
            right_points = x>(arr2[j])
            indices = left_points | right_points
            i = i + 1
            j = j + 1            
            return indices

    backgroundy = background(arr2,arr3)

*****代码到此结束*****

arr2 is array([38.6, 44.4, 63.3, 75.3, 79.1, 93.9])
arr3 is array([33.6, 39.4, 58.3, 70.3, 74.1, 88.9])

我试图遍历数组中的每个点以获得一个布尔数组,其中 arr2 和 arr3 之间的值和 false。目前,此代码可以针对第一组值(33.6 和 38.6)执行此操作,但我似乎无法让它遍历所有值。 我觉得这是一件很容易做到的事情,但我已经尝试了几个小时,但我无法让它发挥作用。任何帮助将不胜感激。

提前致谢

【问题讨论】:

  • return 结束函数。它死了——唯一出来的是它的返回值。要么在函数内部进行迭代,然后将结果收集到一个返回的列表中,要么在值之外进行迭代,然后调用函数以获取一次评估的结果。
  • 除此之外:minimal reproducible example 您的代码不完整,无法运行。可能是由于缩进 - 也是无限循环。

标签: python-3.x loops iteration


【解决方案1】:

您可以使用带有索引的 for 循环来遍历两个数组:

arr4 = []
for i in range(len(arr2)):
     left_points = x<(arr3[i])
     right_points = x>(arr2[i])
     arr4.append(left_points | right_points)

【讨论】:

  • 我得到 'IndexError: list assignment index out of range'
  • 抱歉,我把字典和列表搞混了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 2021-05-27
  • 2018-05-20
  • 2011-02-24
  • 2016-04-30
  • 2020-12-04
  • 2020-07-05
相关资源
最近更新 更多