В C ++ часто делают что-то вроде этого:
typedef map<int, vector<int> > MyIndexType;
Где я тогда использую это так:
MyIndexType myIndex;
for( ... some loop ...)
{
myIndex[someId].push_back(someVal);
}
Если на карте не было записи, код вставит новый пустой вектор, а затем добавит к нему.
В Python это будет выглядеть так:
myIndex = {}
for (someId,someVal) in collection:
try:
myIndex[someId].append(someVal)
except KeyError:
myIndex[someId] = [someVal]
Попытка кроме здесь немного уродлива. Есть ли способ сообщить словарю тип объекта для вставки при обнаружении ключевой ошибки во время объявления словаря?