В Python 2.*
сумма (d.itervalues ()) немного менее кратка, чем sum(d.values())
, которую предлагают многие (еще 4 символа ;-), но избегает ненужной материализации списка значений и, следовательно, экономит память и, вероятно, время), когда у вас есть большой словарь, чтобы иметь дело.
Как отмечают некоторые, это работает нормально, потому что bools - это целые числа (в частности, подкласс):
>>> False==0
True
>>> False+True
1
, следовательно, нет необходимости в обходных if
предложениях.