定义python函数时,“list”对象不可调用

定义python函数时,“list”对象不可调用,python,Python,我正在尝试创建一个函数组合,以: 1计算每个字符在字符串中出现的次数; 2将结果传递到包含字符对和出现时间的字典中; 3并找出出现次数最多的字符 对于函数best_keydictionary,我一直收到错误消息“list”对象不可调用。有人知道为什么吗 def count_frequency(st): d = {} for c in st: if c not in d: d[c] = 0 d[c] = d[c]+1

我正在尝试创建一个函数组合,以: 1计算每个字符在字符串中出现的次数; 2将结果传递到包含字符对和出现时间的字典中; 3并找出出现次数最多的字符

对于函数best_keydictionary,我一直收到错误消息“list”对象不可调用。有人知道为什么吗

def count_frequency(st):
    d = {}
    for c in st:
        if c not in d:
            d[c] = 0
        d[c] = d[c]+1
    return d

def best_key(dictionary):
    ks=dictionary.keys() 
    best_key_so_far = list(ks)[0] **TypeError: 'list' object is not callable**
    for k in ks:
        if dictionary[k]>dictionary[best_key_so_far] 
            best_key_so_far=k
    return best_key_so_far


def final_one(s):
    freq=count_frequency(s)
    return best_key(freq)

print(final_one("567tfgffffbbbbb"))

我检查了您的代码,结果发现它包含一个或多个语法错误。 以下是正确的代码:

def count_frequency(st):
    d = {}
    for c in st:
        if c not in d:
            d[c] = 0
        d[c] = d[c]+1
    return d


def best_key(dictionary):
    ks = dictionary.keys()
    best_key_so_far = list(ks)[0]
    for k in ks:
        if dictionary[k] > dictionary[best_key_so_far]:
            best_key_so_far = k
    return best_key_so_far


def final_one(s):
    freq = count_frequency(s)
    return best_key(freq)
当你打电话时

print(final_one("567tfgffffbbbbb"))
输出将是,

f

希望它能帮助你

f和b都出现了5次,所以答案应该是['f','b']。您可以使用下面的代码进行相同的操作

def count_frequency(st):
    d = {}
    for c in st:
        if c not in d:
            d[c] = 0
        d[c] = d[c] + 1
    return d


def best_key(dictionary):
    MaxValue = max(dictionary.items(), key=lambda x: x[1])
    listOfKeys = list()

    for key, value in dictionary.items():
        if value == MaxValue[1]:
            listOfKeys.append(key)
    return listOfKeys


def final_one(s):
    freq = count_frequency(s)
    return best_key(freq)


print(final_one("567tfgffffbbbbb"))
输出将是

['f', 'b']

缩进错误-请修复。您可能会隐藏内置列表-检查代码中的赋值列表=…我无法重现此错误我只假设缩进在哪里,所以我想这可能会影响它…正确的缩进,在最佳键方法中,在if条件中添加冒号,对方法有效问题不是逻辑,如果您对答案感到满意,您可以接受答案为正确答案,并将问题标记为已完成。