微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

函数def中的SyntaxError

如何解决函数def中的SyntaxError

功能用于计算数字数组的模式。语法错误在def函数的第二个for循环中发生,我无法理解该语法错误的根本问题,请帮帮我

def mode(arr):
    
    numbers = {}
    
    for num in arr:
        numbers[num] = numbers.get(num,0) + 1
        
    max_occ = max(list(numbers.values())
    
    for key in numbers:
        mode_list = []
        if numbers[key] == max_occ:
            mode_list.append(key)
    
    mode = min(mode_list)

    return mode

解决方法

错误不在第二个循环中,错误在第4行中,您错过了一个括号

max_occ = max(list(numbers.values())**)**

对于数字数组的计算方式,您也可以尝试此

from collections import Counter 

num = [1,2,3,4,5,4] 
n = len(num) 
  
data = Counter(num) 
find_mode = dict(data) 
mode = [k for k,v in find_mode.items() if v == max(list(data.values()))] 
  
if len(mode) == n: 
    find_mode = "No mode found"
else: 
    find_mode = "Mode is: " + ','.join(map(str,mode)) 
      
print(find_mode) 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。