Подобные вопросы были перенесены (хорошее сравнение скорости) на этом же subject. Надеюсь, это другой вопрос, и он обновлен до Python 2.6 и 3.0.
Пока что я считаю, что более быстрый и наиболее совместимый метод (среди разных версий Python) - это простой простой знак +
:
text = "whatever" + " you " + SAY
Но я все время слышу и читаю, это небезопасно и / или не рекомендуется.
Я даже не уверен, сколько существует методов для управления строками! Я мог сосчитать только около 4: есть интерполяция и все ее подпараметры, такие как %
и format
, а затем есть простые, join
и +
.
Наконец, новый подход к форматированию строк, который используется в format
, определенно не подходит для обратной совместимости, в то же время делая %
не подходящим для прямой совместимости. Но следует ли его использовать для каждой строковой обработки, включая каждую конкатенацию, всякий раз, когда мы ограничиваемся только 3.x?
Что ж, возможно, это скорее вики, чем вопрос, но я действительно хочу получить ответ на правильное использование каждого метода обработки строк. И какой из них обычно можно использовать для каждой цели (лучше всего для совместимости, скорости и безопасности).
Спасибо.
edit: Я не уверен, что должен принимать ответ, если я не чувствую, что он действительно отвечает на вопрос ... Но я считаю, что все они 3 вместе делают правильную работу.
Ответ Даниэля, за который проголосовали больше всего, я бы предпочел принять, если бы не «примечание». Я категорически не согласен с «конкатенация строго использует оператор + для конкатенации строк» , потому что, например, join
также выполняет конкатенацию строк, и для этого мы можем создать любую произвольную библиотеку.
Все текущие 3 ответа ценны, и я бы предпочел получить какой-нибудь ответ, смешивающий их все. Хотя никто из добровольцев этого не делает, я думаю, что, выбрав тот, за который проголосовали меньше (но он гораздо шире, чем у THC4k, что больше похоже на большой и очень желанный комментарий), я могу привлечь внимание и к другим.
+
небезопасно и / или не рекомендуется? - person John Machin   schedule 08.05.2010+
. - person cregox   schedule 08.05.2010+=
стал быстрее в более поздних версиях Pythons. Где вы читаете, что+
небезопасно? - person John Machin   schedule 08.05.2010