Mam słownika Pythona z ciąg kluczy, wartości całkowite. Chcę znaleźć sumę wartości, jeśli klucz nie jest "?". Mogę znaleźć sumę za pomocą pętli for takiej jak ta.zmniejszenie wartości słownika Pythona, jeśli klucz spełnia warunek
d = {'a':20, 'b': 20, '?': 10}
sum = 0
for k in d.keys():
if k != '?':
sum += d[k]
print "This is my sum: " + sum
Wyłącznie ze względu na samą ambicję, chciałbym ją przekształcić w funkcję reduce(). Zrobiłem to:
sum = reduce(lambda s, k: s if k == '?' else s += d[k], d.keys())
, ale tak naprawdę nie wiem, co robię. Jestem pewien, że ktoś z lepszymi funkcjonalnymi kotletami niż ja mogę to zrobić w kilka minut. Pomóż mi?