Кратчайший способ написать функцию разделения и назначить переменные? - PullRequest
0 голосов
/ 19 марта 2020

Я ищу более короткий, но все же чистый и гибкий способ написать то, что у меня есть ниже.

Переменная для работы с (длина варьируется)

drpfile_exportname = '1911_CocaCola_XMasNow_TVC30sec_03_Roughcut_Tv10_PV01_Ov01_200319_prev_for_approval_H264'

Долгий путь, но чистый

# Split string by "_"
drpfile_exportname_list = drpfile_exportname.split("_")
# Set variables
ul_date = drpfile_exportname_list[0]
up_client = drpfile_exportname_list[1]
up_cprojname = drpfile_exportname_list[2]
# Join variables to create desired name
upload_projname = "_".join((ul_date, up_client, up_cprojname))

Альтернативный oneliner не так гибок, как никакие переменные не назначены и, на мой взгляд, не прекрасный способ решить это

upload_projname = ("_".join(drpfile_exportname.split('_')[0:3])) 

Мысль что-то вроде бы это будет работать, но всегда с этим были проблемы

ul_date, up_client, up_cprojname = drpfile_exportname.split('_', 2)

Печать:

print("\nProject name:    {}".format(upload_projname))

Результат, который должен быть сохранен в переменной:

Имя проекта: 1911_CocaCola_XMasNow

1 Ответ

4 голосов
/ 19 марта 2020

Вы можете нарезать результат разделения.

ul_date, up_client, up_cprojname = drpfile_exportname.split('_')[:3]

Или вы можете назначить фиктивную переменную части, которую хотите игнорировать

ul_date, up_client, up_cprojname, *_ = drpfile_exportname.split('_')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...