当前位置: 首页 > 面试题库 >

计算在python中的字典中某个值出现的次数?

胡修伟
2023-03-14
问题内容

如果我有这样的事情:

D = {'a': 97, 'c': 0 , 'b':0,'e': 94, 'r': 97 , 'g':0}

例如,如果我想将“ 0”的出现次数作为一个值进行计数而不必重复整个列表,那甚至有可能吗?如何?


问题答案:

正如我在评论中提到的,您可以在sum()函数内使用生成器,如下所示:

sum(value == 0 for value in D.values())

或者,作为一种稍微优化和实用的方法,您可以使用map如下功能

sum(map((0).__eq__, D.values()))

基准测试:

In [56]: %timeit sum(map((0).__eq__, D.values()))
1000000 loops, best of 3: 756 ns per loop

In [57]: %timeit sum(value == 0 for value in D.values())
1000000 loops, best of 3: 977 ns per loop

请注意,虽然map在这种情况下使用函数可能会得到更好的优化,但是为了获得关于这两种方法的全面而通用的想法,您还应该针对较大的数据集运行基准测试。然后,您可以决定何时使用哪个以获得更高的性能。



 类似资料:
  • 本文向大家介绍计算Python中字符串中字符的出现次数,包括了计算Python中字符串中字符的出现次数的使用技巧和注意事项,需要的朋友参考一下 给我们一个字符串和一个字符。我们想找出给定字符在给定字符串中重复多少次。 随着范围和镜头 我们设计了一个for循环,以使该字符与字符串中存在的每个可通过索引访问的字符匹配。range和len函数可帮助我们确定从字符串的左移到右移时必须进行多少次匹配。 示例

  • 计算数组中值的出现次数。 每次遇到数组中的某个特定值时,使用 Array.reduce() 来递增计数器。 const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a + 0), 0); countOccurrences([1, 1, 2, 1, 2, 3], 1); // 3

  • 问题内容: 计算字符串中字符出现次数的最简单方法是什么? 例如,计算出现在其中的次数 问题答案: 返回sub范围中的子字符串不重叠的次数。可选参数并以片表示法解释。

  • 问题内容: 假设我有一张选举数据表,称为选举,每个选举每个选民都有一行,如下所示: 我想知道在选举1和选举2中都投票的选民人数;我不在乎别人 该数字应为2(选民A和选民E)。 这样的事情会做: 更新:这是我在这里的第一个问题,我被那些热心而又快速的人们所震撼。我修改了上面的查询,以解决最后缺少别名并添加终止分号的问题。 谢谢你! 问题答案: 是的。你所拥有的应该工作。(您将需要在派生表上添加一个别

  • 我需要返回一个字典,该字典计算预定列表中每个字母出现的次数。问题是我需要把大小写字母都算成一样,所以我不能用.low或.uper。 因此,例如,如果“t”是要搜索的字母,“This is a Python String”应该返回{nt':3}。 这是我目前所掌握的... 其中'letters'是条件,fullText是我正在搜索的字符串。 这里很明显的问题是,如果测试是“t”而不是“t”,我的代码

  • 我已经被设置了一个任务,这意味着我需要创建一个'3个或更多的骰子游戏‘。我所坚持的是这个游戏所需要的计分系统,它是这样的:“玩家依次掷出所有五个骰子,并为同类中的三个或更好的骰子得分。如果玩家只有同类中的两个,他们可能会重新掷出剩余的骰子,试图提高匹配的骰子值。如果没有匹配的数字被掷出,玩家得分为0。 游戏进行了一定数量的回合(比如50回合),游戏结束时总分最高的玩家是获胜者。“我需要计算出如何将