2013-02-21 16 views

risposta

1
>>> a = {'a' : 5, 'b': 8} 
>>> sum(value for _, value in a.items() if value > 0) 
9

Prova ad usare il metodo values sul dizionario (che restituisce un generatore in Python 3.x), scorrendo ogni valore e la somma se è maggiore di 0 (o qualunque sia la sua condizione è):

In [1]: d = {'one': 1, 'two': 2, 'twenty': 20, 'negative 4': -4} 

In [2]: sum(v for v in d.values() if v > 0) 
Out[2]: 23 
+0

Wow, questo potrebbe essere l'esempio migliore che ho visto di una spiegazione concisa in inglese che associa ad un'espressione di generatore in un modo così ovvio che non hai nemmeno bisogno di dire che è quello che stai facendo. Vorrei poter dare più di +1. – abarnert

+0

@abarnert Venendo da te è un bel complimento, grazie :) – RocketDonkey

+0

fantastico. Grazie. – user2097496

Problemi correlati