Übungen, während Sie anfangen, Python zu berühren. Versuchen. foldl,foldr
box=lambda *x:x
unbox=lambda x:x[-1]
do=box
switch=unbox
foldl=(lambda f,acc,xs:
switch(
xs == [] and do( acc )
or do( foldl(f, f(acc, xs[0]), xs[1:]) )
)
)
foldr=(lambda f,xs,acc:
switch(
xs == [] and do( acc )
or do( foldr(f, xs[:-1], f(xs[-1], acc)) )
)
)
erledigt. Ich kann geradeaus gehen und den Beat verpassen. Nein, es war erstaunlich, H-Bücher zu konservieren. Sehr sehr alleine ...
Vergleichen Sie es mit der ursprünglichen Reduzierung oder Summe. Es scheint, dass timeit verwendet werden kann, aber ich wusste nicht, was ich mit IDLE machen soll, also werde ich versuchen, mein eigenes Messwerkzeug zu erstellen. Nun, es wird etwas Übung sein.
import time
measure_t=(lambda f , *arg :
(lambda m_start = time.time() ,
m_stop = time.time :
( f( *arg),
m_stop() - m_start ,
)[-1]
)()
)
erledigt. Petit passt zum Zeitpunkt der Funktionsausführung.
Es scheint, dass es verwendet wird, obwohl es richtig gemacht ist.
>>> measure_t(foldl,lambda x,y:x+y,0,range(1,100))
0.00026679039001464844
>>> measure_t(foldr,lambda x,y:x+y,range(1,100),0)
0.000247955322265625
>>> measure_t(reduce,lambda x,y:x+y,range(100))
7.605552673339844e-05
>>> measure_t(sum,range(100))
6.198883056640625e-06
Es ist gut, eingebaute Geräte so leise wie möglich zu verwenden. Bedeutet das ...
das ist alles.