在 Python 中快速操作嵌套循环



>我有3个类:组,客户,产品。每个组包含一个客户列表 [C1, C2, C3,...],每个客户包含一个他想要购买的产品列表 [P1,P2,P3,...]。在顶层,我想做各种聚合,例如总订单值多少。我最终会遇到嵌套循环,随着组、客户和产品数量的增加,这些循环非常慢

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

在构建代码以使其更快方面,您会建议什么?

这些组有多大等?如果这些操作是一个瓶颈,我会感到惊讶。你要去循环中的数据库吗?

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

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

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

最新更新