我正在开发一个项目,涉及使用 Python 中的嵌套列表理解来处理大型数据集。我编写的代码达到了预期的结果,但我担心随着数据集大小的增加其性能。我正在寻找有关如何优化代码以提高效率的建议
result = [
[func1(item) for item in sublist1 if condition1(item)]
for sublist1 in dataset1
if condition2(sublist1)
for sublist2 in dataset2
if condition3(sublist2)
]
我认为这里没有关于如何在不了解实际上下文的情况下优化此代码的明确答案。
但是,我看到一些事情或可能对你有帮助。
generator expression
。这是通过将方括号 ([]
) 替换为圆括号 (()
) 来实现的。现在,完整列表将不会存储在内存中,并且仅在循环遍历时逐个元素进行计算。for loops
之间使用的 if 语句已经可以很好地尽快排除循环。一般来说,如果您需要加快代码速度,可以考虑使用分析器(例如
pyinstrument
)来确定代码的哪一部分实际上花费了最长的时间。