unordered_map<int,vector<float>>在Python中等效

unordered_map<int, vector<float>> equivalent in Python

本文关键字:gt lt Python map int unordered vector float      更新时间:2023-10-16

我需要一个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];

this在Python中的等价结构是什么?

此格式的字典 -> { (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

像这样的字典和列表怎么样:

>>> 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]
>>> 

键可以是整数,关联值可以存储为列表。Python中的字典是一个哈希映射,复杂度是按O(1)平摊的

在python中,我们可以将此数据结构称为Dictionary。字典用于在键:值对中存储数据值。字典的例子:Mydict = {"brand"Ford"model"Mustang"year" 1964}

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

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