イテレータを反転したイテレータを得る修行
イテレータを渡すと、それを反転したイテレータが返るような関数がないものか、と思ったけど、なさげ。reversed() はシーケンスを引数に取ってそれを反転したイテレータを返す。イテレータから一旦シーケンスを経由すれば大丈夫、ということになる。つまり、
>>> [v for v in reversed(enumerate("abcde"))] Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: argument to reversed() must be a sequence
は駄目だけど、
>>> [v for v in reversed([u for u in enumerate("abcde")])] [(4, 'e'), (3, 'd'), (2, 'c'), (1, 'b'), (0, 'a')]
はよい、と。