这个语句运行得很慢,我已经没有办法优化它了。有人能帮帮我吗?你知道吗
[dict(zip(small_list1, small_list2)) for small_list2 in really_huge_list_of_list]
small_list
只包含大约6个元素。你知道吗
大小为209510的really_huge_list_of_list
大约需要16.5秒才能完成执行。你知道吗
谢谢你!你知道吗
编辑:
really_huge_list_of_list
是一个生成器。抱歉给你带来任何困惑。
大小从结果列表中获取。你知道吗
Tags:
要扩展评论想要说的内容,应该使用生成器而不是列表。您的代码当前如下所示:
你应该改成这样:
你现在要做的是,在你对这个巨大的列表做任何事情之前,获取所有迭代的结果,并建立一个巨大的结果列表。相反,你应该把这个列表变成一个生成器,这样你就不必建立一个包含200000个结果的列表。它建立的结果列表占用了大量的内存和时间。你知道吗
。。。或者更好的方法是,将列表理解转化为生成器理解,将其外括号改为圆括号:
这就是你真正需要做的。列表理解和生成器理解的语法几乎完全相同:如果你理解了一个列表理解,你就会理解相应的生成器理解。(在本例中,我首先用“long form”写出了生成器,这样您就可以看到这种理解扩展到了什么)。你知道吗
有关生成器理解的更多信息,请参见here、here和/或here。你知道吗
希望这能帮助您在Python工具箱中添加另一个有用的工具!你知道吗
可能的小改进:
此外,您可以考虑使用生成器而不是列表理解。你知道吗
相关问题 更多 >
编程相关推荐