如何返回给定元素的索引值

时间:2019-05-20 14:38:39

标签: python-3.x list indexing

所以我的问题是:

已排序的整数数组旋转了未知次数。

给出这样一个数组,以比线性时间快的速度找到数组中元素的索引。如果数组中不存在该元素,则返回null。

例如,给定数组[13、18、25、2、8、10]和元素8,返回4(数组中8的索引)。

您可以假定数组中的所有整数都是唯一的。

我已经尝试过的代码:

def find_index(x, a):
    x = input("Enter number wish to be found:  ")
    a = [13, 18, 25, 2, 8, 10]
    for element in a:
        if x not in a:
            return None
        else:
            print(a.index(x))

print(find_index())

我收到find_index() missing 2 required positional arguments: 'x' and 'a'的错误

我期望能够使用户输入一个数字,并返回索引位置或None的值。我碰到一堵墙,不知道在哪里继续。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

  1. 您提供的代码不会产生上述错误。

  2. 该函数为什么要使用2个参数,然后立即覆盖它们?

  3. input返回一个字符串。您必须将x转换为整数。

无论如何,循环没有任何意义。您所有功能所需要做的就是包装.index

def find_index():
    try:
        x = int(input("Enter number wish to be found:  "))
    except ValueError:
        return 'You have to input an integer'
    a = [13, 18, 25, 2, 8, 10]
    try:
        return a.index(x)
    except ValueError:
        return None