使用不可变字符串的高效字符串构建

时间:2015-04-20 03:23:53

标签: python string optimization

在C ++中,vector :: reserve()可以在构建字符串时提前有效地分配内存。即使没有它,我们也可以在O(n)摊销中建立一个字符串。

我们如何在字符串不可变的语言中有效地构建字符串,例如python?一次添加原子的天真方法,在O(n)中的C ++中工作正常,似乎是O(n ^ 2),为gc生成O(n ^ 2)垃圾。

1 个答案:

答案 0 :(得分:1)

在Python中处理此问题的常用方法是生成字符串列表(或使用生成器),并调用join来组合它们。

final_string = ''.join(substring for substring in my_generator())