从Python列表中的字典获取数据

2024-04-28 16:08:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经思考和阅读了一段时间,但至今还没有找到解决办法。我的问题是,我的单子上有一些词典

goodsandprices = [{'good': 'apple', 'price': 10}, {'good': 'pear', 'price': 20}, {'good': 'orange', 'price': 25}, {'good': 'plum', 'price': 15}, {'good': 'wine', 'ar': 40}]

我甚至不确定它是否正确,我的程序没有对此大惊小怪。我的目的是收集每一个有“价格”键的数据,并得到它的最小值。我的第一个猜测是

min(goodsandprices['price']))

但这给了我一个错误。你能告诉我怎么做吗?你知道吗


Tags: 程序目的apple价格price词典单子ar
3条回答

如果您只需要具有最小price值的成员,可以执行以下操作:

print min(goodsandprices, key=lambda _:_["price"])

使用带有回调函数的min(iterable, *[, key, default])函数作为key参数:

goodsandprices = [{'good': 'apple', 'price': 10}, {'good': 'pear', 'price': 20}, {'good': 'orange', 'price': 25}, {'good': 'plum', 'price': 15}, {'good': 'wine', 'ar': 40}]
result = min(goodsandprices, key=lambda x: getattr(x, 'price', 0))

print(result['price']) 

输出:

10
goodsandprices = [{'good': 'apple', 'price': 10}, {'good': 'pear', 'price': 20}, {'good': 'orange', 'price': 25}, {'good': 'plum', 'price': 15}, {'good': 'wine', 'ar': 40}]    
key = 'price'
arr1 = []

for item in goodsandprices:
    if key in item:
        arr1.append(item['price'])


print min(arr1)

相关问题 更多 >