如何解决索引列表递归
我需要本次作业的帮助。
我需要用Python编写一个名为ind(e,L)
的函数;在L中第一个显示e的位置。我无法使用索引函数。
例如,
In [1]: ind(42,[55,77,42,12,100])
Out[1]: 2
或
In [1]: ind('hi',['oh','hi','there'])
Out[1]: 1
编辑:抱歉,我对Stackoverflow.com也很陌生,所以很抱歉没有提供到目前为止我已经提供的代码。
这是我的代码,到目前为止:
def ind(e,L):
if L == '' or L == []:
return 0
else:
return ind(L[0:]) + 1
assert ind(42,[20,60,30]) == 2
我的代码似乎不起作用。
我对递归还很陌生,我认为仍然很难管理。 有人可以帮我提供此代码,并以纯英语解释该代码如何工作吗?
您的帮助将不胜感激!非常感谢。
解决方法
def ind(e,L):
for i,v in enumerate(L):
# Iterates over [(0,55),(1,77),(2,42)]
if v == e:
# If our current element matches the search,return the index
return i
# If none was found,return -1
return -1
无需递归
,您可以使用list comprehensions。
def ind(e,L):
return [k for k,i in enumerate(L) if i == e]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。