Python试图阻止您“添加”字符串。您应该加入他们的行列:
"".join(list_of_strings)
它快得多,并且使用的内存更少。
快速基准:
$ python -m timeit -s 'import operator; strings = ["a"]*10000' 'r = reduce(operator.add, strings)'
100 loops, best of 3: 8.46 msec per loop
$ python -m timeit -s 'import operator; strings = ["a"]*10000' 'r = "".join(strings)'
1000 loops, best of 3: 296 usec per loop
编辑(回答OP的编辑):关于为什么字符串显然是“单一”的,我相信这只是针对常见情况进行优化以及实施最佳实践的问题:您可以使用’‘更快地连接字符串。加入,因此明确禁止使用字符串sum
会向新手指出。