在Python中快速操作嵌套循环

时间:2020-01-15 07:28:07

标签: python-3.x loops

我有3个班级:小组,客户,产品。每个组包含一个客户列表[C1,C2,C3,...],每个客户包含他要购买的产品列表[P1,P2,P3,...]。在最高级别,我想进行各种汇总,例如,总订单价值多少。我最终遇到的嵌套循环随着组,客户和产品数量的增加而变得非常慢

total_order = 0
for customer in group:
    for product in customer:
        total_order += product.price * product.amount

在结构化代码方面,您会建议什么呢?

2 个答案:

答案 0 :(得分:1)

这些团体有多大?如果这些操作成为瓶颈,我会感到惊讶。您要在循环中进入数据库吗?

您可以改用列表推导,但我不确定它能给您带来什么好处。

total_order = sum(p.price * p.amount for c in group for p in c)

答案 1 :(得分:-1)

在python中,由于许多原因,您必须尽可能避免for循环。 即使在机器学习(神经网络)术语中,也最好使用Vectoriziation而不是显式的for循环。 在您的情况下,我建议使用“ map”,因为它实际上是用C语言编写的for循环。

相关问题