Общим антипаттерном в Python является конкатенация последовательности строк с использованием +
в цикле. Это плохо, потому что интерпретатор Python должен создать новый строковый объект для каждой итерации, и он заканчивается квадратичным временем. (Последние версии CPython могут, по-видимому, оптимизировать это в некоторых случаях, но другие реализации не могут, поэтому программистам не рекомендуется полагаться на это.) ''.join
- правильный способ сделать это.
Однако, я слышал, что он сказал (в том числе здесь, о переполнении стека), что никогда не следует использовать +
для конкатенации строк, но вместо этого всегда используйте ''.join
или строку формата. Я не понимаю, почему это так, если вы только конкатенируете две строки. Если мое понимание верное, оно не должно принимать квадратичное время, и я думаю, что a + b
более чистый и читаемый, чем либо ''.join((a, b))
или '%s%s' % (a, b)
.
Хорошо ли использовать +
, чтобы объединить две строки? Или есть проблема, о которой я не знаю?