Мне любопытно кое-что:
У меня есть диктат, например, с ключом автомобиля и значением относительно его скорости.Теперь я хочу найти ключ с наименьшим значением.
car_dict = {'mercedes': 200, 'fiat': 100, 'porsche': 300, 'rocketcar': 600}
Я знаю, что этот код работает с O (1)
car_value = list(car_dict.values())
car_key = list(car_dict.keys())
min_stats = min(car_value)
print(car_key[car_value.index(min_stats)])
, и этот тоже с O (n)
keys = []
values = []
for name, value in car_dict.items():
keys.append(name)
values.append(value)
min_value = min(values)
print(keys[values.index(min_value)])
В настоящее время я пытаюсь лучше понять понимание, поэтому мой вопрос заключается в том, возможен ли подход к этой проблеме с использованием списочных пониманий.
Я думал о чем-то подобном
worst = {name for name, stats in car_dict if min(stats)}
Тем не менее, я думаю, что я все еще неправильно что-то понимаю в части if
.
Кстати, поправьте меня, если я ошибаюсь из-за своей веры в сложность Большого О, описанную выше.
Большое спасибо!