我有一个脚本,大约需要10分钟才能在我的本地机器上运行。在脚本开始时,我必须构建一些非常大的列表并遍历它们以执行各种清理功能,这将创建清理数据的新列表。在执行此操作时,是否有标准的方法来清除/保留内存
我最初的想法是在使用完变量后,简单地将其重置为空列表:
lst = [1,2,3, toinfinity..]
clean_lst = [x for x in l if x < infinity]
lst = []
cleaner_lst = [x for x in clean_lst if x > 100]
clean_lst = []
# etc...
如果不确定更大的代码上下文,就很难知道这个答案是否有用,但假设您不需要保留原始列表:
只需将列表本身替换为已清理的版本:
一般来说,Python可以很好地处理垃圾收集。在这个例子中,再次假设您不需要原始列表,创建临时列表只是使用内存,而不需要使用内存
首先,如果我是你,我会分析我的代码,例如通过封装你在函数中提到的那些调用,并调用
稍后,我将重点关注那些像您在post中要求的小优化(而不是关注真正的性能猪!),我将上面的代码替换为:
但这只是我考虑将这些方括号转换成普通括号,将我的列表转换成生成器之前的一步。如果你能更精确一点的要求,也许我们可以做得更好
例如,您提到您运行各种函数。为什么不换成这样的东西:
有一些可能性,但需要更多的细节
相关问题 更多 >
编程相关推荐