2017-10-07 10 views
0

私は、配列に基づいたクラス用の反復子クラスを作成しています。要素を配列に挿入する関数を持つ通常の配列と考えることができます。これまでのところ、私はLinked Listのイテレータにしか触れていませんでしたが、普通の配列のために考え出すことはできませんでした。これはPythonで配列を反復する

class ArrayIterator: 

    def __init__(self,array): 
     self.i = 0 

    def __next__(self): 
     first = array[0] 
     self.i+=1 
     return i 

    def __iter__(self): 
     return self 
+0

あなたは "通常の配列" とはどういう意味ですか? ['array.array'](https://docs.python.org/3/library/array.html)?ナンシーアレイ?あるいは、普通のPythonのリストについて話していますか?投稿したコードはちょっと困惑しています。 '__init__'メソッドは' array'という名前のargをとりますが、何もしません。 –

+0

@PM 2 [なし] *サイズで表されるものを書き留めます。 – Electric

答えて

0

チェック:

class ArrayIterator: 
    def __init__(self, array): 
     self.i = 0 
     self.array = array 

    def __next__(self): 
     try: 
      result = self.array[self.i] 
     except IndexError: 
      raise StopIteration 
     else: 
      self.i += 1 
      return result 

    def __iter__(self): 
     return self 


my_iter = ArrayIterator([1, 2, 3, 4, 5]) 

for x in my_iter: 
    print(x)