6

我尝试将此函数编写为 lambda 函数,我尝试了很多选项,但未能成功:

 def getitem_rlist(s, i):
    while i > 0:    
      s, i = rest(s), i - 1
    return first(s)

我知道开始:

getitem_rlist=lambda s,i:....?

谢谢!例如如果:s=(1,(2,(3,4)))那么 getitem_rlist(a,2))# -> 3 函数需要返回递归列表s的索引i处的元素

4

1 回答 1

2
getitem_rlist=lambda s,i: getitem_rlist(s[1:][0],i-1) if i > 0 else s[0]

也许你想要什么......如果不知道其他方法做了什么,很难说......

>>> getitem_rlist=lambda s,i: getitem_rlist(s[1:][0],i-1) if i > 0 else s[0]
>>> s=(1,(2,(3,4)))
>>> getitem_rlist(s,2)
3
于 2013-11-10T17:43:33.840 回答