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

标签 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++ 不是很熟悉,但我的理解是 -> 运算符等效于对指针引用的类的方法调用。我的问题是如何将这段代码翻译成可以由 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/

相关文章:

python - 将字符串文字转换为字符串列表

python - 如何根据两个条件过滤 csv 文件中的特定行? (使用 Pandas )

python - 在 Windows 上安装 Fabric(错误 No Module Named Readline)

c++ - operator= 和 C++ 中未继承的函数?

c++ - 程序不会退出 do-while 循环

python - Wordpress xmlrpc python 检查帖子标题是否存在

python - 在 Python 中从 curl 读取 JSON 文件

c++ - stringstream::in 语法错误

C++:将 ifstream 与 getline() 一起使用;

c++ - 删除动态内存时出现断言失败错误