以相反的顺序迭代一个可交互的序列

时间:2018-08-08 04:36:51

标签: python python-3.x

我有一个可迭代的序列nums = [1,2,3,4]。我想创建一个生成器函数,当使用next(nums)时,它将以相反的顺序逐一返回值。我的目标是使用len()做到这一点。我知道列表的长度减去一个将是列表中最后一项的索引。我如何使用len()编写输出代码:

    next(nums)
4
    next(nums)
3
    next(nums)
2
    next(nums)
1

编辑:忘记提及不允许使用其他内置函数。

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