Представьте, что у вас есть четыре строки: a
, b
, c
и d
.
Скажите, что хотите их объединение, e = a + b + c + d
.Однако оператор +
определен только для двух операндов, поэтому вам, вероятно, потребуется объединить отдельные строки одну за другой.
Наивный способ вычисления этого может быть следующим:
e = ((a + b) + c) + d
Но это неэффективно, потому что генерирует две одноразовые строки: a + b
и a + b + c
.
Теперь представьте, что мы создали буферный объект, содержащий все символы, которые мы хотели объединить:
e_buffer = [a, b, c, d]
Мы можем создать e
из этого одновременно , избегая необходимости создавать много промежуточных строк.
Для этого требуется функция, которую в Python мы вызываем join
;это метод str
, который разделяет эту строку между предоставленными аргументами.Поэтому, когда вы выполняете some_separator.join([a, b, c])
, вы получаете, по сути, a + some_separator + b + some_separator + c
.
Чтобы ответить на ваш вопрос: в общем случае при объединении большого количества строк следует использовать join
быстрее, и этобудет, по крайней мере, более читабельным, особенно при использовании разделителя.Для случая, указанного в вопросе, я бы вместо этого использовал f-строку:
def greeting(name: str) -> str:
return f'Hello {name}'