在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