文章内容

2023/9/25 2:09:08,作 者: 黄兵

Python 列表 lambda 函数求和

最近需要对一个列表求和,列表内容如下:

[{'name': 'Hans Backpack', 'img_url': 'https://x.dev/shop/images/product-classic-chair-300x372.jpg', 'img_alt': 'Hans Backpack', 'quantity': 1, 'price': Decimal('79.00')},
{'name': 'Hans Backpack', 'img_url': 'https://x.dev/shop/images/product-classic-chair-300x372.jpg', 'img_alt': 'Hans Backpack', 'quantity': 1, 'price': Decimal('79.00')}]

这里我们需要对 price 求和,很多人想到的就是循环。

这里我们可以使用 lambda 函数和 map 函数来求和,但首先你需要将字典列表中的 'price' 值提取出来,并将其转换为 Decimal 类型。以下是使用 lambda 函数和 map 函数求和的示例:

# 导入 Decimal 类
from decimal import Decimal

# 给定的列表
data = [{'name': 'Hans Backpack', 'img_url': 'https://x.dev/shop/images/product-classic-chair-300x372.jpg', 'img_alt': 'Hans Backpack', 'quantity': 1, 'price': Decimal('79.00')},
        {'name': 'Hans Backpack', 'img_url': 'https://x.dev/shop/images/product-classic-chair-300x372.jpg', 'img_alt': 'Hans Backpack', 'quantity': 1, 'price': Decimal('79.00')}]

# 使用 lambda 函数和 map 提取 'price' 值,并将其转换为 Decimal 类型,然后使用 sum 求和
total_price = sum(map(lambda item: item['price'], data))

# 打印总价格
print("总价格:", total_price)

这样就简化了很多代码,是代码更简洁。


其它想推荐:

1、python lambda表达式

2、Python 除法取整

3、Python 类编码风格

4、Python 三目运算符

5、Python not运算


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Python 列表 lambda 函数求和

分享到:

发表评论

评论列表

user-ico

匿名 on 回复 有用(1

无需lambda,直接列表表达式即可 sum([x['price'] for x in data])