numpy 我想创建一个函数,它检查类似命名的数组中的某个值,并相应地返回值

sczxawaw  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(70)

我想要一个函数,在类似命名的数组中搜索一个数字,然后返回对应于它所在的特定数组的特定值。
下面的代码使用了if和elif:

bf0 = np.arange(38,75,1)
for i in range(1,5):
    globals()["bf"+str(i)] = globals()["bf"+str(i-1)]+37
def func(x):
if x in bf0:
    return "x is in bf0"
elif x in bf1:
    return "x is in bf1"
elif x in bf2:
    return "x is in bf2"
elif x in bf3:
    return "x is in bf3"
elif x in bf4:
    return "x is in bf4"

字符串
虽然这样做的工作,有没有什么方法可以简化代码,以减少不重复的行?

vq8itlhq

vq8itlhq1#

import numpy as np

arrays = {}

for i in range(5):
    array_name = "bf" + str(i)
    start = 38 + i * 37
    end = 75
    arrays[array_name] = np.arange(start, end, 1)

def search_array(x):
    for array_name, array in arrays.items():
        if x in array:
            return f"{x} is in {array_name}"
    return f"{x} is not in any array"

result = search_array(45)
print(result)

字符串

相关问题