c++ - python中unorderd_map的替代方案是什么?我们知道 key 中的默认值:值在 c++ 中为零
问题描述
//in C++
unordered_map<int,int>m;
for (i = 0; i < n; ++i) {
m[arr[i]]++;
}
#in python
my_dict = {}
for i in range(len(arr)):
my_dict[arr[i]] += 1 #This gives key error
我确信默认值在 C++ 中设置为零,所以它可以工作。如何在 Python 中实现它?
解决方案
在 python 中你可以使用defaultdict
.
from collections import defaultdict
arr = [1,2,3]
my_dict = defaultdict(int)
for i in range(len(arr)):
my_dict[arr[i]]+=1
推荐阅读
- java - 使用 ButterKnife 处理自定义 AlertDialog 时出现异常
- java - Android 中的电话目录以及从其中获取任何内容的问题
- python - 将产量输出传递给工作人员池时出现 Python 类型错误。想把一个大文件分成几行
- sql - 我正在尝试使用 sql loader 将数据加载到我的 oracle 表中
- javascript - 同时导入命名空间和子模块是否有缺点?例如 `import React, { Component } from ...`
- visual-studio-2015 - 在 Visual Studio 2015 上使用静态 const 变量产生未定义符号 (LNK2001)
- c# - 如何确保系统仅将正确的日期格式输入到 sql server
- docker - 如何杀死一个镜像的多个 Docker 容器
- powerbi - 随时间变化的每周增量
- php - PHP如何正确使用函数插入表?