[英]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.