2017-10-07 168 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)?一個Numpy數組?還是你在談論純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)