【问题标题】:Finding max character count in a string using Python 3使用 Python 3 查找字符串中的最大字符数
【发布时间】:2016-03-02 01:24:10
【问题描述】:

我正在做一个实验室(在 Python 3 中),该实验室要求我在最常出现的字符串中查找并打印字符。例如:

>>> print(maxCharCount('apple'))
['p']

我们的想法是使用循环来执行此操作,但我对如何执行此操作感到困惑。

【问题讨论】:

标签: python loops charactercount


【解决方案1】:
def maxCharCount(ss):
    return max(ss, key=ss.count)

【讨论】:

  • 有趣的是,它可以在没有 key 参数的情况下工作:max(string) 就像在 max('apple') 中返回 'p'
  • 只要你小心避免那些讨厌的边缘情况,比如“apples”和“oranges”。
【解决方案2】:
def max_char_count(string):
    max_char = ''
    max_count = 0
    for char in set(string):
        count = string.count(char)
        if count > max_count:
            max_count = count
            max_char = char
    return max_char

print(max_char_count('apple'))

【讨论】:

    【解决方案3】:

    既然你真的想使用 for 循环:

    a = 'apple'
    m = set(a)
    max = 0
    for i in m:
        if a.count(i) > max:
             max = a.count(i)
    

    编辑:我没读好,你实际上想要的字母不是它出现的次数所以我把这段代码编辑成:

    a = 'apple'
    m = set(a)
    max = 0
    p = ''
    for i in m:
            if a.count(i) > max:
                 max = a.count(i)
                 p = i
    

    【讨论】:

    • 你不能使用set,因为它会删除一个'p'
    • @MauroBaraldi 该集合仅用于循环以限制冗余迭代。仍然对字符串 'a' 进行计数
    【解决方案4】:
    def count(char, string):
        c = 0
        for s in string:
            if char == s:
                c += 1
        return c
    
    def max_char_count(string):
        biggest = string[0]
        for c in string:
            if count(c,string) > count(biggest,string):
                biggest = c
        return biggest
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      相关资源
      最近更新 更多