Как использовать '' .join () в Python? - PullRequest
0 голосов
/ 17 мая 2019

Я изучал Рекомендации по программированию PEP8 .

Было рекомендовано использовать ''.join для объединения строк, но я не понимал, когда это сделать:

  1. Должен ли я объединяться каждый раз таким образом?
  2. Насколько это полезно?
  3. В какое время идеально использовать join() для String?В Path, URL, Texts?

В PEP 484 есть пример, который я считаю некорректным, если всегда использовать join правильно:

def greeting(name: str) -> str:
    return 'Hello ' + name

Должно ли это быть return ' '.join('Hello', name)?

1 Ответ

0 голосов
/ 17 мая 2019

Представьте, что у вас есть четыре строки: 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}'
...