Function 重新出现的价值观?
我是python的初学者,很难找到列表中第二个重复出现的值。请注意,在不使用enumerate或count func的情况下,尽量简化此操作,而只使用循环和列表 到目前为止,我的代码是: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]:
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"
谢谢你的回复,我知道我做错了什么,索引错误值得注意。