定义python函数时,“list”对象不可调用
我正在尝试创建一个函数组合,以: 1计算每个字符在字符串中出现的次数; 2将结果传递到包含字符对和出现时间的字典中; 3并找出出现次数最多的字符 对于函数best_keydictionary,我一直收到错误消息“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
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条件中添加冒号,对方法有效问题不是逻辑,如果您对答案感到满意,您可以接受答案为正确答案,并将问题标记为已完成。