Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録
< anond:20180628203705 |隣のベランダのたばこ... >

2018-06-29

from typing import Sequenceclass ReverseSequence(object):def __init__(self, sequence: Sequence):        self.sequence = sequence  # reference to container        self.index =len(sequence)  # currentindex    #Step 1.define __iter__ method whitch returns self.def __iter__(self):        return self    #Step 2.define __next__ method    #             rasing StopIterationat the end of iteration.def __next__(self):        if self.index&gt; 0:            self.index = self.index - 1  #nextindex            return self.sequence[self.index]        else:            raise StopIterationclass ReverseSequenceGenerator(object):def __init__(self, sequence: Sequence):        self.sequence = sequence        self.index =len(sequence)def __iter__(self):        while self.index&gt; 0:            self.index = self.index - 1            yield self.sequence[self.index]        raise StopIterationassert list.__eq__(    [element for element in ReverseSequence('spam')],    [element for element in ReverseSequenceGenerator('spam')])
class Reverse:def __init__(self, data):        self.data = data        self.index =len(data)def __iter__(self):        return selfdef __next__(self):        if self.index == 0:            raise StopIteration        self.index = self.index - 1        return self.data[self.index]class ReverseGenerator:def __init__(self, data):        self.data = data        self.index =len(data)def __iter__(self):        whileTrue:            if self.index == 0:                raise StopIteration            self.index = self.index - 1            yield self.data[self.index]assert [s for s in Reverse('spam')] == [s for s in ReverseGenerator('spam')]

Permalink |記事への反応(0) | 23:11

このエントリーをはてなブックマークに追加ツイートシェア

記事への反応 -

記事への反応(ブックマークコメント)

全てのコメントを見る

人気エントリ

注目エントリ

ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp