2012-05-30 3 views
0

Итак, я нашел частоты чисел из списка и создал список таких, как этот [2: 3, 25: 1, 22: 4, 5: 2, 5 : 2] То, что я пытаюсь сделать после этого, имеет петлю for, определяющую максимальную частоту (разные цифры могут иметь одинаковые частоты), а затем печатать число и частоту, которые являются самыми высокими, которые могут быть более одного.Наивысшее значение числа из списка режимов

+7

У вас есть 'list' или' dict'? Потому что '[2: 3, 25: 1, 22: 4, 5: 2, 5: 2]' тоже. – mata

+0

Итак, в '2: 3', который является номером и является частотой? Кроме того, что представляет собой значение «5: 2», появляющееся дважды? – NPE

+0

Так что число равно 2, а частота равна 3. Umm пытается показать, что разные числа могут иметь одинаковую максимальную частоту – bluelantern

ответ

1

В зависимости от того, как данные структурированы

>>> data = {2:3 , 25:1, 22:4, 5:2, 5:2} 
>>> max(data, key = lambda x: data[x]) 
22 

или

>>> data = [(2, 3), (25, 1), (22, 4), (5,2), (5,2)] 
>>> max(data, key = lambda x: x[1]) 
(22, 4) 

должен сделать трюк.

[Редактировать]

>>> data = {2:3 , 25:4, 22:4, 5:2, 5:2} 
>>> max_key = max(data.values()) 
>>> print [i for i in data if data[i] == max_key] 
[22, 25] 
+0

Допустим, у вас есть данные = {2: 4, 5: 4, 3: 2, 22: 6} как бы вы отображали 2 и 5 – bluelantern

+1

Отредактировано, это будет учитывать множество значений. Тем не менее, вы используете плохую структуру данных. Я настоятельно рекомендую вам взглянуть на http://docs.python.org/dev/library/collections.html#collections.Counter – luke14free