unordered_map <int,vector <float =“”>&gt;相当于Python

时间:2016-08-12 18:46:45

标签: python c++ hashmap

我需要Python中的一个结构,它将整数索引映射到浮点数的向量。我的数据如下:

[0] = {1.0, 1.0, 1.0, 1.0}
[1] = {0.5, 1.0}

如果我用C ++编写,我会使用以下代码进行定义/添加/访问,如下所示:

std::unordered_map<int, std::vector<float>> VertexWeights;
VertexWeights[0].push_back(0.0f);
vertexWeights[0].push_back(1.0f);
vertexWeights[13].push_back(0.5f);
std::cout <<vertexWeights[0][0];

Python的等效结构是什么?

3 个答案:

答案 0 :(得分:2)

字典和列表怎么样:

Green: F2:F20>=7
Red  : F2:F20<4
Yello: 7>F2:F20>=4

键可以是整数,关联值可以存储为列表。 Python中的字典是一个哈希映射,复杂性是分摊的>>> d = {0: [1.0, 1.0, 1.0, 1.0], 1: [0.5, 1.0]} >>> d[0] [1.0, 1.0, 1.0, 1.0] >>> d[1] [0.5, 1.0] >>>

答案 1 :(得分:2)

此格式的 dictionary - &gt; { (int) key : (list) value }

d = {}  # Initialize empty dictionary.
d[0] = [1.0, 1.0, 1.0, 1.0] # Place key 0 in d, and map this array to it.
print d[0]
d[1] = [0.5, 1.0]
print d[1]
>>> [1.0, 1.0, 1.0, 1.0]
>>> [0.5, 1.0]
print d[0][0]  # std::cout <<vertexWeights[0][0];
>>> 1.0

答案 2 :(得分:0)

我会选择整数作为键的dict和作为项目的list,例如

m = dict()
m[0] = list()
m[0].append(1.0)
m[0].append(0.5)
m[13] = list()
m[13].append(13.0)

如果数据不是太多