Abfolge von Funktions -Iterationen
Posted: 20 May 2025, 17:07
Gibt es eine Möglichkeit, Zuweisungsausdrücke oder funktionale Tools zu missbrauchen, um die Sequenz x, f (x), f (f (x)) zu erzeugen, ... in einer Zeile? < /p>
Hier sind einige erfunden
Hier sind einige erfunden
Code: Select all
def iter(x, f, lim=10):
for _ in range(lim):
yield x
x = f(x)
iter(1, lambda x: (2*x)%99)
< /code>
(Dies macht einen zusätzlichen Funktionsaufruf, der nicht genutzt wird. Idealerweise wird dies vermieden.) < /p>
Eine weitere seltsame Idee, die ich hatte, ist "Ein-Argument akkumulieren", sogar hässlicher. Die Idee ist, die Binärfunktion zu verwenden, aber die Listenelemente zu ignorieren! Es wird nicht gut ansammelt. < /P>
from itertools import accumulate
list(accumulate([None]*10, lambda x,y:2*x, initial=1))