在C ++中,vector :: reserve()可以在构建字符串时提前有效地分配内存。即使没有它,我们也可以在O(n)摊销中建立一个字符串。
我们如何在字符串不可变的语言中有效地构建字符串,例如python?一次添加原子的天真方法,在O(n)中的C ++中工作正常,似乎是O(n ^ 2),为gc生成O(n ^ 2)垃圾。
答案 0 :(得分:1)
在Python中处理此问题的常用方法是生成字符串列表(或使用生成器),并调用join
来组合它们。
final_string = ''.join(substring for substring in my_generator())