我正在尝试将用 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++ 不是很熟悉,但我的理解是 -> 运算符等效于对指针引用的类的方法调用。我的问题是如何将这段代码翻译成可以由 Python 中的 OrderedDict() 对象处理的代码?
最佳答案
首先,在 C++ 中,您可以这样写:
dpt[key_t] += rat;
这将只执行一次 map 查找 - 与您编写的代码相反,如果 key_t
不在 map 中,则执行 2 次查找,如果在 map 中,则执行 3 次查找。
在 Python 中,您将以大致相同的方式编写它 - 假设您声明 dpt
是正确的:
dpt = collections.defaultdict(int)
...
dpt[key_t] += rat
关于python - 将 C++ 映射转换为 Python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37400078/