2014-12-01 4 views
1

В словаре с ключами и списком значений, как вы находите, какое значение находится в списках значений чаще всего? Я предполагаю, что вы используете для циклов и добавляете списки, но не знаете, как это сделать. Также я хочу напечатать значение, которое чаще всего встречается?Как вы находите, какое значение имеет наибольшее значение в словаре?

Спасибо!

Пожалуйста, имейте в виду, что я очень новичок в программировании и не знаком с лямбдой или другими сложными способами решения этой проблемы.

ответ

4

Один из способов сделать это было бы использовать collections.Counter

from collections import Counter 

>>> d = {'a': 5, 'b': 3, 'c': 5, 'd': 1, 'e': 5} 
>>> c = Counter(d.values()) 
>>> c 
[(5, 3), (1, 1), (3, 1)] 

>>> c.most_common()[0] 
(5, 3) # this is the value, and number of appearances 
+0

Это слишком сложно для понимания, к сожалению. –

0

Сортировка словаря по значению следует сделать это:

d = {'a': 5, 'b': 3, 'c': 5, 'd': 1, 'e': 5} 

print(d[sorted(d, key=lambda k: d[k])[-1]]) 

Cyber ​​прав, выше получает наибольшее значение. См. Ниже, чтобы получить наиболее частое. Моя идея - получить значение без использования коллекций. Counter.

counts = {} 
for k in d: 
    counts[d[k]] = counts.get(d[k], 0) + 1 


print(sorted(counts)[-1]) # 5 
print(counts)    # {1: 1, 3: 1, 5: 3} 
Смежные вопросы