Задать вопрос
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону

Как сократить строку?

path = glob.glob(get_script_directory()+"\\gifs\\"+' '.join(msg.text.split(' ')[1:]).strip()+".*")[0]

вот есть такая строка. Она отвечает за поиск файла. Как можно ее упростить? Меня скорее волнует часть ' '.join(msg.text.split(' ')[1:]).strip()
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Средний 1 комментарий
Решения вопроса 2
mayton2019
@mayton2019
Bigdata Engineer
По количеству информации на квадратный метр - эта строка вполне себе плотная и насыщенная действиями.

Чтоб делать какой-то интересный рефакторинг - надо делать не одно-строчники а функции.

Тоесть
def composePath(....) -> string:
  return ....

Вот. Функции можно покрывать тестами и таким образом гарантировать стабильность от изменений.
Ответ написан
Комментировать
@dima20155
you don't choose c++. It chooses you
Выигрыл в читаемости чуть-чуть и в скорости также должен быть прирост.

text = "Hello world hi mir"
new_text = ' '.join(text.split(' ')[1:]).strip()
print(f'"{new_text}"') # "world hi mir"

another_new_text = text[text.find(' ')+1:]
print(f'"{another_new_text}"') # "world hi mir"


А итоговый код можно записать так:
path = glob.glob(fr'{get_script_directory()}\gifs\{msg.text[text.find(" ")+1:]}".*"')[0])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы