[Python] calcolare il valore in corrispondenza del massimo

Nadir Sampaoli nadirsampaoli a gmail.com
Ven 27 Set 2013 14:11:43 CEST


Il giorno 27 settembre 2013 13:26, Piergiuliano Bossi
<pgbossi a gmail.com>ha scritto:

> V2
>     def value_at_max(values, functor):
>         max_value = None # si usano trucchetti come questo con None o ci
> sono modi migliori?
>         for value in values:
>             if not max_value or functor(value) > functor(max_value):
>                 max_value = value
>         return max_value
>
>     def _max_value(self):
>         return value_at_max(self._values, lambda v: v.func())
>

Probabilmente non ho capito, ma non mi tornano un paio di cose:

1. se `functor = lambda v: v.func()` e `max_value = None` allora
`functor(max_value) = None.func()`, che però non va bene.

2. V1 e V2 non mi sembrano avere lo stesso comportamento, perchè mentre V2
restituisce il primo `value` che è non "falsy" e per il quale vale
`functor(value) > functor(max_value)` (dato che la condizione si
corto-circuita e non vengono effettuati altri confronti), invece V1
restituisce l'i-esimo elemento di `self._values` per il quale
`self._values[i].func() restituisce il valore massimo.

Mi sono perso qualcosa?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130927/4e259536/attachment.html>


Maggiori informazioni sulla lista Python