のPython 2.6.2Pythonでcallable-iteratorの関数に引数を渡すにはどうすればいいですか?
>>> call_iter = iter(lambda x: x + 1, 100)
>>> call_iter.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: <lambda>() takes exactly 1 argument (0 given)
私はlambda x:x + 1
に引数を渡したいです。
更新:上記の例はわかりにくいと思います。
私はPythonでmyiterのような組み込みfuncがあるかどうかを疑問に思う:
class myiter:
def __init__(self, callable, initial, sentinel):
self.value = initial
self.callable = callable
self.sentinel = sentinel
def __iter__(self):
return self
def next(self):
if self.value == self.sentinel:
raise StopIteration
else:
# calculate next value from prev value
self.value = self.callable(self.value)
return self.value
if __name__ == '__main__':
call_iter = myiter(lambda x:x + 1, 0, 100)
for i in call_iter:
print i
これは理解しにくいです。 'call_iter'を使って生成する数字のシーケンスは何ですか? –
これは 'iter'の呼び出し可能な形式を使用する必要がありますか?それはあなたが渡したい開始番号ですか? – agf
おそらくカスタムイテレータですか? http://stackoverflow.com/questions/19151/build-a-basic-python-iterator –