Нахождение минимального значения словаря в Python - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужно найти min второго словарного элемента без использования функции min() в python. Должно быть al oop.

Например, мой dictionary равен

sol = {"shape1":[250, 300, 280], "shape2":[46, 70, 5], 
       "shape3":[147, 12, 150], "shape4":[107, 10, 108]}

Выходные данные, которые я должен получить, равны shape2 , так как первое значение ниже первого значения первой фигуры.

Любая помощь будет сокращена

Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

попробуйте это:

sol = {"shape1":[250, 300, 280], "shape2":[46, 70, 5], "shape3":[147, 12, 150], "shape4":[107, 10, 108]}

smallest_shape = ""
smallest_value = 0
for i, pair in enumerate(sol.items()):
    if i == 0 or pair[1][0] < smallest_value:
        smallest_shape = pair[0]
        smallest_value = pair[1][0]

print(smallest_shape)
0 голосов
/ 13 апреля 2020

Один вкладыш использует sorted по значениям dict

sol= {"shape1":[250, 300, 280], 
    "shape2":[46, 70, 5], 
    "shape3":[147, 12, 150], 
    "shape4":[107, 10, 108]}

[(k) for k, v in sorted(sol.items(), key=lambda item: item[1][0])][0] # 'shape2'
...