Как получить минимальное значение и имя из списка

У меня есть парсер из которого я получаю данные цену и имя. Далее добавляю их в list:


list.append(
                    {
                        "min.name": name,
                        "min.price": price
                    }
                )
Результат:
[{'min.name': 'Apple iPhone 12 128GB Black Neverlock', 'min.price': '23 999'}, {'min.name': 'iPhone IPhone XR xr Айфон хр Хр Iphone black', 'min.price': '14 400'}, ...]

Мне нужно сравнить min.price определить самую низкую цену, а далее получить название товара к которому относиться самая низкая цена и вывести эти данные примерно так: "Название" "Цена"


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

Автор решения: Namerek
l = [{'min.name': 'Apple iPhone 12 128GB Black Neverlock', 'min.price': '23 999'}, {'min.name': 'iPhone IPhone XR xr Айфон хр Хр Iphone black', 'min.price': '14 400'}]

m = min(l, key=lambda x: int(''.join(filter(str.isdigit, x.get('min.price')))))
print(m)
# {'min.name': 'iPhone IPhone XR xr Айфон хр Хр Iphone black', 'min.price': '14 400'}

print(*m.values())
# iPhone IPhone XR xr Айфон хр Хр Iphone black 14 400
→ Ссылка
Автор решения: DiMithras

Не совсем понятен смысл, зачем делать список из словарей с одинаковыми ключами?
Почему не:

data = {'min.name': [], 'min.price': []}
data['min.name'].append(name)
data['min.price'].append(price)

Ну или из того что есть собрать
(list лучше не использовать в качесве переменной, но пусть будет как в примере):

data = {'min.name': [], 'min.price': []}
for l in list:
    data['min.name'].append(l['min.name'])
    data['min.price'].append(l['min.price'])

Затем поиск значительно упростится, а именно:

minimum_price = min(data['min.price'])
data['min.name'].index(minimum_price)
# Или одной строкой
data['min.name'].index(min(data['min.price']))

Да и DataFrame в Pandas с таким форматом собирается на раз. По сути у Вас ключи это название колонок, а для названий колонок рядами будут списки.

→ Ссылка