在C++中经常做这样的事情:Python中的map <int,vector <int>>的等效物是什么?
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]
除了尝试是有点难看这里。在字典声明时遇到KeyError时,是否有方法告诉字典要插入的对象类型?
你应该在你的C++代码中查找multimap <>。 – SoapBox 2008-11-27 21:09:15
多图不一定是正确的数据结构。在地图中嵌套矢量很好。 – 2008-11-27 21:13:34
同意:多地图不会保留插入的顺序,因为地图>会。 –
Alastair
2008-11-27 21:19:04