Сортировка словаря в списке, что происходит под "капотом" lambda?

Всем привет, не смог разобраться, как написать функцию, которая заменит lambda-функцию. Есть list, содержащий в себе dict, который необходимо отсортировать. Сделал это через lambda-функцию, только это не pythonic way. Будьте так добры, покажите пример или ссылочку на RTFM.

В отличие от лямбда функций в других языках, где они добавляют функциональность, лямбды в Python являются лишь сокращенной записью, если вы слишком ленивы, чтобы определить функцию. (Source)

products = [
           {"name": "meat", "price": 15},
           {"name": "pen", "price": 5},
           {"name": "whiteboard", "price": 170}
           ]

products.sort(key=lambda i: i["price"])

Сам пробовал работать со словарями как с элементами массива и ни к чему не пришёл. Видел на сайте решение пузырьковой сортировкой. Но что происходит именно с lambda?

#Мой не правильный вариант
for i in data:
     products.sort(key=sor(i))


def sor(i):
    return i["price"]

Почему если следующие функции равнозначны, мой вариант переписать лямбду не работает.

def identity(x):
    return x

lambda x: x

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

Автор решения: Shellait
def sor(i):
    return i["price"]

и потом просто products.sort(key=sor) – andreymal

→ Ссылка