У меня есть следующая небольшая программа:
ages=[23,23,43,54,34,22,43,23]
histogram={}
for age in ages:
if not age in histogram:
histogram[age]=1
else:
histogram[age]+=1
for age,count in sorted(histogram.items()):
print "Age: %d Number of people: %d"%(age,count)
Создает простую гистограмму возрастов людей в списке.Тем не менее, я нахожу двойной поиск в хеш гистограммы довольно неприглядным.Я знаю, что доступ к хешу в основном O (1), так что это не так неэффективно, как может показаться, но все же ...
Я пробовал различные обходные пути, такие как попытка использовать setdefault,но следующее не сработает:
histogram.setdefault("age",0)+=1 #<- Incorrect
Я знаю, что могу использовать defaultdict, но это меняет поведение созданного объекта dict гистограммы, а это не то, что мне нужно.
Еслиу меня был способ поставить этот вопрос на «низкий приоритет», потому что, очевидно, это не очень важно.Но я долго искал умное и / или изящное решение этой проблемы.
Итак, вопрос в том, как увеличить целое число ключом в dict или установить его в1 если его не существует?