使用字典计算最常见的字母

时间:2017-11-08 19:56:56

标签: python

我正在尝试编写一个函数,它将接受一个字符串并使用字典来计算并返回该字符串中最常见的字母。我相信我的代码已接近工作;但是,我得到一个"不能分配给函数调用"第5行的错误。

到目前为止,这是我的代码:

def mostCommon(myString):
    charCount = []
    for c in myString.lower():
        if c in charCount:
            charCount(c) += 1
        else:
            charCount(c) = 1
    myVal = 0
    myKey = 0
    for key, value in charCount.lower():
        if value > myVal:
           myVal = value
           myKey = key
        return charCount

4 个答案:

答案 0 :(得分:2)

这是纠正错误的功能。

def mostCommon(myString):
    charCount = {}
    for c in myString.lower():
        if c in charCount:
            charCount[c] += 1
        else:
            charCount[c] = 1
    myVal = 0
    myKey = 0
    for key, value in charCount.items():
        if value > myVal:
           myVal = value
           myKey = key
    return myKey

这是一种更简单的方法

from collections import Counter

def mostCommon(myString):
    return Counter(myString).most_common(1)[0][0]

答案 1 :(得分:0)

您将charCount定义为列表,然后尝试将其称为函数。如果您希望charCount只是一个数字,只需在for循环之前将其设置为0.

或使用词典

charCount = {}
for c in myString.lower():
    if c in charCount:
        charCount[c] += 1

答案 2 :(得分:0)

我认为您希望charCount成为dict而不是list。以下是使用max函数的简单解决方案:

def mostCommon2(myString):
    charCount = {}
    for c in myString.lower():
        if c in charCount:
            charCount[c] += 1
        else:
            charCount[c] = 1
    return max(charCount, key=charCount.get)

答案 3 :(得分:0)

这里有一些可以帮助的事情。

  1. 声明字典的正确语法是charCount = {}

  2. 您无法使用charCount(c)创建项目,最好charcount[c] = 'c'

  3. 将元素添加到词典:Add new keys to a dictionary?