我有一个可迭代的序列nums = [1,2,3,4]。我想创建一个生成器函数,当使用next(nums)时,它将以相反的顺序逐一返回值。我的目标是使用len()做到这一点。我知道列表的长度减去一个将是列表中最后一项的索引。我如何使用len()编写输出代码:
next(nums)
4
next(nums)
3
next(nums)
2
next(nums)
1
编辑:忘记提及不允许使用其他内置函数。
答案 0 :(得分:0)
>>> def solution(lst):
... dex = len(lst) - 1
... while dex >= 0:
... yield lst[dex]
... dex -= 1
...
>>> nums = solution([1, 2, 3, 4])
>>> next(nums)
4
>>> next(nums)
3
>>> next(nums)
2
>>> next(nums)
1
>>> next(nums)
Traceback (most recent call last):
File "<input>", line 1, in <module>
StopIteration