擅长:python、mysql、java
<p>我不是百分之百确定我知道你想要什么。你说“。。。在一个[1,2,3,4,5,2]的列表中,它应该返回4…“这让我有点困惑;我想您应该返回指定的<code>item</code>的最后一次出现的索引。因此,要使4成为指定列表中的结果,<code>item</code>必须是5。在</p>
<p>如前所述,递归函数在这里并不是最有效或最具python的解决方案。我更喜欢像<a href="https://stackoverflow.com/a/12985164/197011">nneonneo's answer</a>中的第一个解决方案。在</p>
<p>但是,如果它必须是递归的,我相信下面的代码可以满足您的需要。在递归调用中传递列表时,您需要使用<code>[1:]</code>作为索引范围,而不是从前面单步执行列表:</p>
<pre><code>def lstIndex(lst, item):
if len(lst) == 0:
return -1
elif lst[-1] == item:
return len(lst) - 1
else:
return lstIndex(lst[0:-1], item)
</code></pre>
<p>我测试了以下内容:</p>
^{pr2}$
<p>输出如下:</p>
<blockquote>
<p>5<br/>
0<br/>
2<br/>
3<br/>
4<br/>
-1<br/>
-1 </p>
</blockquote>