Function 重新出现的价值观?

Function 重新出现的价值观?,function,Function,我是python的初学者,很难找到列表中第二个重复出现的值。请注意,在不使用enumerate或count func的情况下,尽量简化此操作,而只使用循环和列表 到目前为止,我的代码是: def find_second_occurrence(xs,v): num_occurrence = 0 for i in range(len(xs)): for j in range(v): if (xs)[i] == (v)[j]:

我是python的初学者,很难找到列表中第二个重复出现的值。请注意,在不使用enumerate或count func的情况下,尽量简化此操作,而只使用循环和列表

到目前为止,我的代码是:

def find_second_occurrence(xs,v):
    num_occurrence = 0
    for i in range(len(xs)):
        for j in range(v):
            if (xs)[i] == (v)[j]:
                num_occurrence = i
            return str((xs,v)[num_occurrence])

这有一些问题,首先是内部循环:

    for j in range(v):
        if (xs)[i] == (v)[j]:
            num_occurrence = i
首先是不是真的需要,其次是一个错误
v
是一个
int
,不能用
(v)[j]
订阅,将对此提出相应的例外情况。(顺便说一句,名字周围的括号没有多大作用,
xs[i]
(xs)[i]
只有在视觉上更吸引人)

然后,您的返回声明:

str((xs,v)[num_occurrence])
正在创建一个元组
(xs,v)
,然后使用
[num\u occurrence]
进行索引,这将再次成为异常:
indexer
表示您超出了元组索引的界限

无需使用
enumerate
或任何此类内置程序,您只需使用一个标志指示是否已找到该数字一次,并在遍历其余数字时执行该操作,即:

def find_second_occurrence(xs, v):
    found = False
    for i in range(len(xs)):
        if xs[i] == v and found:
            return i
        if xs[i] == v:
            found = True
    return "Not found"

谢谢你的回复,我知道我做错了什么,索引错误值得注意。