Максимальное значение в списке словаря Python, которое стоит вторым по списку

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

d = {i:[0,0] for i in range(37)}

for kk in d.values():
    kk[0]+=1
d[30][0]=0 
d[32][1]+=1676
d[30][1]+=43355


общее=max(d.values())[1]
dd = {jj:zz for jj, zz in d.items() for f in zz if f == max(d.values())[1]}


print(dd)

Ответы (3 шт):

Автор решения: MBo

Это нужно:

max(d.values(), key=lambda x: x[1])[1]

?

→ Ссылка
Автор решения: MarianD
max(lst[1] for lst in d.values())

Объяснение:

Мы можем это сделать это постепенно:

  1. Сначала создаем список из вторых элементов:

    second_elements = [lst[1] for lst in d.values()]
    
  2. Затем применим функцию max()
    (и / или min(), чего вам надо):

     max_of_second_elements = max(second_elements)             # или min вместо max
    

Теперь почти то же самое в одном шаге

  • без использования временной переменной (y меня second_elements)

  • с возможным удалением квадратных скобок (т.е. генератор вместо списка):

    max_of_second_elements = max(lst[1] for lst in d.values())
    
→ Ссылка
Автор решения: MarianD

С применением numpy:

import numpy as np      # pip install numpy

d_array = np.array([e for e in d.values()])               # Создание матрицы из списков
d_array[:,1].max()

Т.е. применим метод .max() ко второму столбцу матрицы.

→ Ссылка