You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取列表嵌套字典中price键的最小值及对应字典的id?

问题描述

现有如下数据:

data = [{'name': 'abc', 'id': 'abc123','price': '$10'},
       {'name': 'def', 'id': 'efg123','price': '$15'},
       {'name': 'ghi', 'id': 'ghi123','price': '$5'}, ]

需求是:去除所有字典中price键值的$符号,转换为数值后找出最小值,同时获取该最小值所属字典的id。

目前已写出去除符号的代码:

for i in data:
    data_price = i['price']
    new_price = data_price.strip('$')
    print(new_price)

但不知道如何比较这些值并获取最小值及对应的id,求实现方法。

解决方案

可以用两种实用方式实现,以下是具体代码和说明:

方法一:遍历记录法

在遍历过程中维护当前的最小值和对应ID,逻辑直观易懂:

data = [{'name': 'abc', 'id': 'abc123','price': '$10'},
       {'name': 'def', 'id': 'efg123','price': '$15'},
       {'name': 'ghi', 'id': 'ghi123','price': '$5'}, ]

min_price = None
min_id = None

for item in data:
    # 去除$符号并转换为整数(如果是小数价格,替换为float即可)
    price_num = int(item['price'].strip('$'))
    # 初始化或更新最小值及对应ID
    if min_price is None or price_num < min_price:
        min_price = price_num
        min_id = item['id']

print(f"最小价格: {min_price}, 对应ID: {min_id}")

运行结果:最小价格: 5, 对应ID: ghi123

方法二:使用min()函数(推荐)

利用Python内置min()的key参数,直接指定比较依据为转换后的价格数值,一步获取目标字典:

data = [{'name': 'abc', 'id': 'abc123','price': '$10'},
       {'name': 'def', 'id': 'efg123','price': '$15'},
       {'name': 'ghi', 'id': 'ghi123','price': '$5'}, ]

# 找到价格最小的字典
min_item = min(data, key=lambda x: int(x['price'].strip('$')))
min_price = int(min_item['price'].strip('$'))
min_id = min_item['id']

print(f"最小价格: {min_price}, 对应ID: {min_id}")

这种写法更简洁高效,符合Python的惯用风格。

内容的提问来源于stack exchange,提问作者ash2021

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:23:15