Префикс каждого слова в списке и преобразовать в строку в Python - PullRequest
0 голосов
/ 31 августа 2018

Постановка задачи : Для заданного списка слов, соединенных разделителем, я хочу поставить перед каждым словом в этом списке символ, а затем получить результат в виде строки, разделенной запятыми. Мне также любопытно, какой оптимальный способ сделать это (может быть, с помощью регулярных выражений ??)

Например, скажем, у меня есть список, определенный как:

lst = ["Hello", "this.is.a.test", "with", "items", "which.can.have.many.dots"]

Если предположить, что символ, к которому я хочу добавить префикс, является хешем (#), тогда я ожидаю получить следующий результат:

#Hello, #this.#is.#a.#test, #with, #items, #which.#can.#have.#many.#dots

Я рассчитал два метода и нашел результаты, где метод № 1 быстрее, но мне интересно, есть ли более простой подход, который я пропускаю. Обратите внимание, что ниже я использую строки нового формата, представленные в Python 3 - в основном это эквивалент {} .format ( args ).

Метод № 1

_ = f"#{', #'.join(lst).replace('.', '.#')}"

Метод № 2

_ = ', '.join([f"#{item.replace('.', '.#')}" for item in lst])

Результаты с time.time(), повторенным для n = 100_000 прогонов:

Метод № 1 - 52 мс

Метод № 2 - 152 мс

...