Python:イテレータクラスでインデックスを返したい
Python2.7でイテレータクラスを作りました。
インデックスを返すようにしたかったため、タプルで返すようにしたのですが、インデックスが不要な場合、エラーとなってしまいます。
これをエラーなく、インデックスが不要な場合にも対応する方法を共有します。
class ItTest(object):
def __init__(self):
self.list = [10, 20, 30]
def __iter__(self):
self.index = 0
self.max = len(self.list)
return self
def next(self):
if self.index >= self.max:
raise StopIteration
output_index = self.index
output = self.list[self.index]
self.index += 1
return output_index, output
def main():
# OK
for index, x in ItTest():
print(x+1)
# エラー
for x in ItTest():
print(x+1)