将C ++映射转换为python字典

时间:2016-05-23 20:35:34

标签: python c++

我正在尝试将用c ++编写的if-else语句转换为相应的python代码块。对于C ++地图dpt2,我试图翻译:

if (dpt2.find(key_t) == dpt2.end()) { dpt2[key_t] = rat; }
else { dpt2.find(key_t) -> second = dpt2.find(key_t) -> second + rat; }

我不熟悉C ++,但我的理解是 - > operator等效于对指针引用的类的方法调用。我的问题是如何将此代码转换为可以由python中的OrderedDict()对象处理的内容?

2 个答案:

答案 0 :(得分:6)

首先,在C ++中你会把它写成:

dpt[key_t] += rat;

这将只执行一次地图查找 - 与您编写的代码相反,在key_t不在地图中的情况下进行2次查找,在情况下进行3次查找。

在Python中,你会以同样的方式编写它 - 假设你声明dpt是正确的:

dpt = collections.defaultdict(int) 
...
dpt[key_t] += rat

答案 1 :(得分:1)

这样的东西?

document.body.backgroundColor="black"