En C++ menudo hacer algo como esto:¿Cuál es el equivalente de map <int, vector <int>> en Python?
typedef map<int, vector<int> > MyIndexType;
Donde luego usarlo como esto:
MyIndexType myIndex;
for(... some loop ...)
{
myIndex[someId].push_back(someVal);
}
Si no había ninguna entrada en el mapa del código insertará un nuevo vector vacío y luego anexarlo
En Python se vería así:
myIndex = {}
for (someId,someVal) in collection:
try:
myIndex[someId].append(someVal)
except KeyError:
myIndex[someId] = [someVal]
El intento excepción es un poco feo aquí. ¿Hay alguna manera de indicarle al diccionario un tipo de objeto para insertar cuando se encuentra un KeyError en el momento de declaración del diccionario?
Debe buscar en multimap <> para su código C++. – SoapBox
Un multimapa no es necesariamente la estructura de datos correcta aquí. Anidar un vector dentro de un mapa está bien. –
De acuerdo: un multimap no retendría el orden de inserción como map > would. –
Alastair