- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否有 Python 的 defaultdict
的 .NET 类似物? ?我发现编写简短的代码很有用,例如。计数频率:
>>> words = "to be or not to be".split()
>>> print words
['to', 'be', 'or', 'not', 'to', 'be']
>>> from collections import defaultdict
>>> frequencies = defaultdict(int)
>>> for word in words:
... frequencies[word] += 1
...
>>> print frequencies
defaultdict(<type 'int'>, {'not': 1, 'to': 2, 'or': 1, 'be': 2})
理想情况下,我可以在 C# 中编写:
var frequencies = new DefaultDictionary<string,int>(() => 0);
foreach(string word in words)
{
frequencies[word] += 1
}
最佳答案
这是一个简单的实现:
public class DefaultDictionary<TKey, TValue> : Dictionary<TKey, TValue> where TValue : new()
{
public new TValue this[TKey key]
{
get
{
TValue val;
if (!TryGetValue(key, out val))
{
val = new TValue();
Add(key, val);
}
return val;
}
set { base[key] = value; }
}
}
以及您将如何使用它:
var dict = new DefaultDictionary<string, int>();
Debug.WriteLine(dict["foo"]); // prints "0"
dict["bar"] = 5;
Debug.WriteLine(dict["bar"]); // prints "5"
或者像这样:
var dict = new DefaultDictionary<string, List<int>>();
dict["foo"].Add(1);
dict["foo"].Add(2);
dict["foo"].Add(3);
关于c# - Python 的 defaultdict 的模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15622622/
从文件中读取并清理的文本: ['the', 'cat', 'chased', 'the', 'dog', 'fled'] 挑战是返回一个字典,其中每个单词作为值,可以跟随它的单词作为键,并计算它跟随它
使用 this answer ,我创建了 defaultdict 的 defaultdict。现在,我想把那个嵌套很深的 dict 对象变回一个普通的 python dict。 from collec
我的应用程序说参数必须是可调用的或无类型有什么特别的原因吗?我很确定这就是您使用 defaultdict 作为其值实例化 defaultdict 的方式。 dict = defaultdict(def
我想实现一个类似 dict 的数据结构,它具有以下属性: from collections import UserDict class TestDict(UserDict): pass tes
我有两个 defaultdict : defaultdict(, {'a': ['OS', 'sys', 'procs'], 'b': ['OS', 'sys']}) defaultdict(, {'
我有一个defaultdict(Set): from sets import Set from collections import defaultdict values = defaultdict(
我正在使用 defaultdict 来存储数百万个短语,所以我的数据结构看起来像 mydict['string'] = set(['other', 'strings'])。它似乎适用于较小的集合,但当
所以 defaultdict documentation提到,如果缺少某个项目,则 default_factory 返回的值“将插入字典中作为键,然后返回。”这在大多数情况下都很棒,但在这种情况下我真
我有一个默认的列表列表,但我基本上想这样做: myDefaultDict = filter(lambda k: len(k)>1, myDefaultDict) 除了它似乎只适用于列表。我能做什么?
这可能是一个愚蠢的问题,但是:我的代码运行良好,直到我尝试添加 ml.我尝试了几种方式但是 init_dict = [] with open("example.csv", "r") as new_da
我正在尝试将列表递归地转换为嵌套字典,如下所示:- 给定输入:- parse_list = ['A','B','C','D'] 所需输出:- data = [ {'name': 'A',
我有一个名为“n”的字典,其中有一个键值关系(字典中的字典)。 此处的 key 将是tenant_id (b77865b66fd544e0841aa7dbca8bdc97, 7b73b9644e824
我有一个 Excel 数据集列表,其中包含以下某些信息: Category Subcategory Name Main Dish Noodle Tomato Noodl
我有以下内容: a = [{ "_id" : { "reportId" : "5a27cda63fff647c33a14b31" }, "amount" : 3000 }, { "_id"
这很简单: 'foo {bar}'.format(**{'bar': 0}) 这不起作用,产生一个 KeyError: from collections import defaultdict d =
我有这个: dict1 = defaultdict(lambda:defaultdict(list)) dict1['rl1']['sh1'] = ['a','b'] dict1['rl1']['sh
我正在尝试在 python 中使用 defalultdict 和不赋值的行为 数据如下: data = {'APPLaunch_ftrace': [63.3, 24.5, 8.4, 2.3, 0.9,
我有一个字典列表。我们称它为:list_of_dict。列表中的词典采用以下形式: {'a' : 1, 'b' : 5, 'c' : 3, 'd' : 6} 和 {'a' : 3, 'f' : 2,
我想使用关键字解包运算符 ** 格式化和打印字典中的数据。 格式字符串可能引用了很多关键字,而字典可能没有所有需要的关键字。对于缺少的键,我想使用字符串“N/A”作为默认值。 我想要一个聪明的解决方案
考虑以下默认字典: data = defaultdict(list) data['key1'] = [{'check': '', 'sth1_1':'k1', 'sth1_2':'k2'}] data
我是一名优秀的程序员,十分优秀!