使用map和lambda计数字典中的频率

better_mixmaster

所以任务很简单。读入一个字符串,并将每个字符及其频率存储在字典中,然后返回字典。我用for循环很容易做到这一点。

def getInputFreq():
    txt = input('Enter a string value: ')
    d = dict()
    for c in txt:
           d[c] = d.get(c,0) + 1
    return d

问题是我需要使用map和lambda重写此语句。我已经尝试了一些方法,早期尝试返回了空字典(尝试中的代码已丢失)。

我最近的尝试是(代替上面的for循环)

 d = map((lambda x: (d.get(x,0)+1)),txt)

返回地图对象地址。

有什么建议么?

让·弗朗索瓦·法布尔

首先,在python 3中,您必须强制执行列表迭代 map

然后,您的方法将不起作用,您将获得全1或0,因为表达式不会累积计数。

您可以str.count在lambda中使用,并将元组映射到字典,该字典可以工作:

txt = "hello"

d = dict(map(lambda x : (x, txt.count(x)), set(txt)))

结果:

{'e': 1, 'l': 2, 'h': 1, 'o': 1}

但是再次,这collections.Counter是首选的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

字典中的频率计数——Python 使用理解

使用map和lambda增加字典列表中的元素

给定字典和列表的频率计数

使用map和lambda的python字典分配

使用字典显示数字频率?

计数字母频率

搜索和计数字典键值对

通过ID和范围内的数字来计数频率

从迭代器中填充计数字典

如何使用lodash从对象数组中创建具有名称和频率计数的对象

如何合并两个频率计数字典-UNIX CMD?

使用Lambda函数对数字求和并计数

Python:使用计数排序算法在给定数组中返回一对每个数字及其频率

从dataframe列创建集合和计数字典

在数据框中包含使用MAP的列和字典

如何使用switch语句查找数字中的数字频率?

计算字典中每个键的每个值的频率,然后将计数信息放入数据框中

如何获取R中的表格,包括计数,相对频率和累积频率?

无法使用指针获取计数器来计数字符串中的数字(大写和小写)

使用Python在嵌套列表中询问计数频率

使用jQuery对数组中的值频率进行计数

使用占位符计数字典键组

仅在计数和Java中使用数字

以降序计数字母频率

使用pandas对列表的字典中的值进行计数并为输出联接键和值名称

不使用 map 和 lambda 等函数的 Racket 中的排列列表

用两个键(频率和字典顺序)对Python中的字典进行排序

使用“lambda”和“字典理解”对嵌套字典执行代数运算?

使用字典替换列表中的数字