2016-03-01 69 views
2

我们应该如何获得Python字典的最高值的键,而无需使用内置功能Python中获得在字典中的最高值的关键,不使用内置功能

{1: 1, 2: 1, 3: 1, 4: 3, 5: 2} **Expecting answer to be 4** 

这可能是容易被

max_key = max(check, key=lambda k: check[k]) 

完成,但想尝试没有内置功能(无需最大,拉姆达)

任何帮助深表感谢

我完整的代码

def array(num): 
    check={} 
    for i in range(len(num)): 
     if num[i] in check: 
      check[num[i]]+=1 
     else:check[num[i]]=1 

    max_key = max(check, key=lambda k: check[k]) 



array([1,2,3,4,5,4,5,4]) 
+1

你能为此显示你的代码吗? – idjaw

+1

循环遍历所有条目,追踪最多 –

+1

财政年度,您所描述的情况更好由'collections.Counter'覆盖。 –

回答

3

功能进行简单的循环思想词典,没有任何内置函数返回的关键最大价值

def get_max_val_key(data): 
    max_value = None 
    for key in data: 
     if max_value is None or max_value < data[key]: 
      max_value = data[key] 
      max_key = key 
    return max_key 



data = {'a':11, 'b':12} 
print(get_max_val_key(data)) 
0

使用此:下面

data= {1: 1, 2: 1, 3: 1, 4: 3, 5: 2} 
maxVal= None 
maxKey= -1 
for k in data: 
    if maxVal is None or maxVal< data[k]: 
     maxVal= data[k] 
     maxKey= k 
+0

我相信iteritems()也是一个内置的函数..好吧?.......纠正我,如果我错了 – spidy

+0

如果列表中的所有元素都小于-1会怎么样? –

+0

如果您在同一个值字段中获得较低值的密钥,此解决方案将无法正常工作。 –

相关问题