2016-03-14 2 views
-1

Скажем, например, у меня есть словарьКак найти максимальное значение для каждой клавиши в списке?

{'Yellow': [1,5,7]},'Red': [10,5,2],'Blue': [8,4,2] 

Как бы напечатать словарь по наибольшему значению для каждого ключа, я хотел бы его для печати:

Red: 10 
Blue: 8 
Yellow: 7 
+0

'печати ("\ п" .join ("{}: {}". Формат (ключ, макс (значение)) для ключ, значение в mydict)) ' – zondo

+0

@zondo Вам не хватает' .items() '...' print ("\ n" .join ("{}: {}". format (key, max (value)) для ключа, значение в mydict.items())) ' –

ответ

3

Вы можете сделать это:

items = sorted(((k, max(v)) for (k, v) in d.items()), key=lambda x:x[1], reverse=True) 
for k, m in items: 
    print (k, ':', m) 
+1

Отредактировано для отражения порядка, требуемого OP. – snakecharmerb

3

Итерация по каждой паре (k, v) в словаре, и напечатать ключ k, за которой следует max() значения v:

d = {'Yellow': [1,5,7],'Red': [10,5,2],'Blue': [8,4,2]} 

for k, v in sorted(d.items(), key=lambda v: max(v[1]), reverse=True): 
    print('{}: {}'.format(k, max(v))) 

Выходной

Red: 10 
Blue: 8 
Yellow: 7 
+0

Я думаю, что OP также хочет, чтобы dict отсортировался в порядке убывания. – dss539

+0

Вы правы - я тупо только сосредоточился на названии. Я обновлю. – gtlambert

+1

Ну ... Я бы не сказал, что ОП безупречен. Формулировка могла бы быть намного лучше. – dss539

Смежные вопросы