Форум сайта python.su
Всем привет.
Подскажите, по задаче: есть список с название управлений в компании и в определенную часть нужно добавить одинарные ковычки.
Как правило это назвная контакт-центров и нужно имя КЦ взять в одинарные ковычки(только они нужны) для решения следующих задач. Причем имя КЦ может быть уже в кавычка одинарных, может быть в двойных ковычка а может совсем быть без них.
В целом задачу решил, но уверен что не совсем оптимально и правильно.
Так же, почему в нельзя решить задачу в однин цикл(первый for, вроде уже заменили двойные на одинарные кавычки в соответствующей позиции) после замены двойных ковыче и пойти далее по массиву?
mas=['Контакт-центр Волжский', 'Контакт-центр "Первый Сибирский"', 'Контакт-центр Первый Сибирский', 'Управление последующей проверки и контроля качества'] for i, v in enumerate(mas): mas[i]=v.replace("\"","\'") for i, v in enumerate(mas): if re.match("Контакт-центр \'(.*)",v)==None: patern=re.match("Контакт-центр (.*)", v) if patern: v="Контакт-центр "+"\'"+patern.group(1)+"\'" mas[i]=v print(mas)
Отредактировано usmesn (Июль 16, 2024 19:21:55)
Офлайн
>>> import re >>> >>> def convert(text): ... out = None ... pat = r'^(Контакт-центр )(.*)$' ... match = re.search(pat, text) ... if match is not None: ... part1, part2 = match.groups() ... part2_ready = "'{}'".format(re.sub(r'[\'"]', '', part2)) ... out = part1 + part2_ready ... else: ... out = text ... return out ... >>> mas = [ ... 'Контакт-центр Волжский', ... 'Контакт-центр "Первый Сибирский"', ... 'Контакт-центр Первый Сибирский', ... 'Управление последующей проверки и контроля качества' ... ] >>> >>> out = [convert(i) for i in mas] >>> out ["Контакт-центр 'Волжский'", "Контакт-центр 'Первый Сибирский'", "Контакт-центр 'Первый Сибирский'", 'Управление последующей проверки и контроля качества'] >>>
Офлайн
py.user.nextспасибо
Офлайн