Abfolge von Funktions -IterationenPython

Python-Programme
Anonymous
 Abfolge von Funktions -Iterationen

Post by Anonymous »

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

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))

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post