关于python:如何在不调用索引函数或任何内置函数的情况下获取列表中的索引?

How to get an index in a list without calling index function or ANY built in functions?

我目前正在尝试构建一个函数,该函数查找数字(n)的第二个除数,并返回第二个除数的索引,而不调用内置索引函数。xs是一个列表,n是要分割的数字例如:locate_second_divisor([20,3,4,2],12)生成2

我的当前代码

1
2
3
4
5
6
7
8
count=0
def locate_second_divisor(xs,n):
     count=0
     for num in xs:
        if n % num==0:
          count+=1
        if count==2:
         return

在返回时,我需要写第二个除数的索引,但是如果不调用索引,我就想不出该怎么做。

这不是重复的问题,因为我不允许使用任何内置函数。我只能使用append、int、float、str和带有布尔值和运算符的循环。我不能像类似的问题那样使用枚举。我需要一些关于内置函数的方法。

更新的代码(只有在没有第二个除数的情况下,我必须不包括任何除数,所以才会失败)

def locate_second_除数(xs,n):计数=0索引=0对于Num在XS中:如果(n%num)==0:计数+=1如果计数=2:收益指数其他:无返回


如果我理解正确的话,你就可以像跟踪满足条件的次数一样跟踪索引。

1
2
3
4
5
6
7
8
9
10
11
12
13
def locate_second_divisor(xs, n):
     count = 0
     index = 0
     for num in xs:
        count += (n % num) == 0

        if count == 2:
            return index
        else:
            index += 1

print(locate_second_divisor([20,3,5,3,4], 12))
# 3

趣味笔记:由于(n % num) == 0评估为TrueFalse,安全地强制转换为10,您可以将第一个if块简化为:count += (n % num) == 0