Проблема в том, что это анализируется как
myDict[100] += (1 if 100 in myDict else 1)
, что аналогично написанию
myDict[100] += 1
и, конечно, требуется, чтобы myDict[100]
уже существовал. Вместо этого вы можете использовать обычное присваивание и метод словаря get
, который позволяет вам указать, что должно быть возвращено, если ключа еще нет:
myDict[100] = myDict.get(100, 0) + 1
Или вы можете использовать collections.Counter
, словарь специального назначения, предназначенный именно для этой работы:
import collections
myDict = collections.Counter()
myDict[100] += 1