我能够在线找到一大堆信息(在Stack Overflow和其他方面),关于如何在Python中使用+或+=连接它是一种非常低效和糟糕的做法.
我似乎无法找到为什么+=这么低效.除了这里提到"它在某些情况下已经优化了20%的改进"(仍然不清楚这些情况是什么),我找不到任何其他信息.
在更技术层面上发生了什么,''.join()优于其他Python串联方法?
我需要遍历文件中的单词.文件可能非常大(超过1TB),线条可能很长(可能只有一行).单词是英语,大小合理.所以我不想加载整个文件甚至整行.
我有一些可行的代码,但如果行长(在我的机器上超过~3GB)可能会爆炸.
def words(file):
for line in file:
words=re.split("\W+", line)
for w in words:
word=w.lower()
if word != '': yield word
Run Code Online (Sandbox Code Playgroud)
你能告诉我怎样才能简单地重写这个迭代器函数,使它在内存中不会超过需要的数量吗?