On Thu, Dec 5, 2013 at 4:12 PM, Daniele Varrazzo <[email protected]> wrote:
> penso funzioni anche:
>
> def depth(tree):
> return 1 + max((depth(t) for t in tree), 0)
no,
max(...)
max(iterable[, key=func]) -> value
max(a, b, c, ...[, key=func]) -> value
With a single iterable argument, return its largest item.
With two or more arguments, return the largest argument.
non puoi mischiare i 2 modi nei quali viene chiamato
la cosa bella di map(), è che in python3 è lazy
rinunciandoci, ed usando python2 (oppure usando itertools.chain) è
però possibile scrivere
def height(tree):
return 1 + max([0]+map(height, tree))
2013/12/5 Federico Caboni <[email protected]>:
>
> Il giorno 05/dic/2013, alle ore 15:07, De Santis Luca <[email protected]>
> ha scritto:
>
> Effettivamente è molto compatta ed elegante, non conoscevo la funzione
> map(), praticamente è una forma più compatta di yield se non ho capito male
> .
>
>
> No: sono due cose diverse.
> yield serve per creare un generatore, ovvero un tipo di particolare di
> funzione che mantiene (yield=mantenere) lo stato tra una chiamata e l’altro,
> ritornando un valore nuovo ad ogni sollecitazione (pensa a come si comporta
> xrange, per esempio).
yield ha più il significato di "dare", "restituire", "fornire" più che
di "mantenere"
https://en.wiktionary.org/wiki/yield#Verb
io lo vedo come un return che "restituisce valori senza ritornare"
--
xmpp: [email protected]
bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP
gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just
for signing commits)
_______________________________________________
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python