【问题标题】:Counting letters in a word [duplicate]计算单词中的字母[重复]
【发布时间】:2021-11-01 16:36:41
【问题描述】:

给定下一个单词:

ABCABACBABACACBACBAC

使用python计算单词中出现的字母最有效的方法是什么?

(解:A:8、B:6、C:6)

【问题讨论】:

  • collections.Counter(word)

标签: python string algorithm


【解决方案1】:

不要重新发明轮子 - 只需使用 Counter:

from collections import Counter
result = Counter('ABCABACBABACACBACBAC')

【讨论】:

    【解决方案2】:

    你可以这样解决:

    >>> def counter(in_str):
    ...     out_dict = dict()
    ...     for char in in_str:
    ...             if char in out_dict:
    ...                     out_dict[char] += 1
    ...             else:
    ...                     out_dict[char] = 1
    ...     return out_dict
    ... 
    >>> counter("ABCABACBABACACBACBAC")
    {'A': 8, 'B': 6, 'C': 6}
    >>> 
    

    如果你想尝试一下如何实现。

    【讨论】:

    • 您可以使用out_dict[char] = out_dict.get(char, 0) + 1 来避免if/else。但是已经有collections.Counterdict 的子类,它可以完成所有这些并且可能更加优化,因此无需实现自己的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    相关资源
    最近更新 更多