Найти минимальное значение по атрибуту в Python

Beginner

This tutorial is from open-source community. Access the source code

Введение

В Python вы можете использовать функцию min(), чтобы найти минимальное значение списка. Однако, что если вы хотите найти минимальное значение списка на основе определенного свойства или атрибута каждого элемента в списке? Именно здесь функция min_by() пригодится.

Найти минимальное значение списка на основе функции

Напишите функцию под названием min_by(lst, fn), которая принимает список lst и функцию fn в качестве аргументов. Функция должна сопоставить каждый элемент в списке с значением с использованием предоставленной функции, а затем вернуть минимальное значение.

def min_by(lst, fn):
  return min(map(fn, lst))
min_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda v : v['n']) ## 2

Резюме

В этом испытании вы узнали, как найти минимальное значение списка на основе определенного свойства или атрибута каждого элемента в списке с использованием функции min_by(). Эта функция сопоставляет каждый элемент в списке с значением с использованием предоставленной функции, а затем возвращает минимальное значение.