繁体   English   中英

带参数列表的python函数

[英]python function with argument list

我想定义一个函数,以找出满足某些条件的列表的索引。 但是总是有一些错误:

TypeError: 'int' object is not iterable

下面是我的代码

def find_index(x,*arr):
    for i in len(arr):
        if abs(i-x) < 1e-5:
            j = arr.index(i)
            return j

如何指定arr是列表还是numpy数组? (对不起,我不知道如何在此编辑器中格式化代码)

非常感谢。

第一个问题是for i in len(arr) len(arr)返回一个不可迭代的整数。 可能会想使用range(len(arr)) ,但不要range(len(arr)) 。有更好的选择! 我们可以在迭代时跟踪值的索引。 通常,此功能可能类似于:

def find_index(x, arr):
    for i, val in enumerate(arr):
        if abs(val - x) < 1.e-5:
            return i

现在,您可以对任何可迭代对象进行调用。 例如:

find_index(5, [1, 2, 3, 5, 60])  # passing a list
find_index(5, (0, 5+1e-6, 10))  # passing a tuple

您可以尝试喜欢:

   l=len(arr)
   for i in range(l)

i返回的是整数值。整数值不可迭代。

我想你想更换

for i in len(arr)

与:

for i in range(len(arr))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM