Как вывод с несколькими строками преобразовать в список и к каждому элемента списка добавить undo
В выводе box_model получаю многострочное значение по типу:
ntp server 1.1.1.1
ntp server 3.3.3.3
ntp server 6.6.6.6
Я хочу сделать из этого вывода список и к каждому элемента списка добавить undo что б получить список типа
undo ntp server 1.1.1.1
undo ntp server 3.3.3.3
undo ntp server 6.6.6.6
Проблемная часть кода:
box_model='''ntp-server 1.1.1.1
ntp-server 2.2.2.2
ntp-server 3.3.3.3'''
box_model.split('\n')
ncommands = ['undo {}'.format(undo) for undo in box_model]
print(ncommands)
Но на выходе получаю совсем не то что ожидаю
['undo n', 'undo t', 'undo p', 'undo -', 'undo s', 'undo e', 'undo r', 'undo v', 'undo e', 'undo r', 'undo ', 'undo 1', 'undo .', 'undo 1', 'undo .', 'undo 1', 'undo .', 'undo 1', 'undo \n', 'undo n', 'undo t', 'undo p', 'undo -', 'undo s', 'undo e', 'undo r', 'undo v', 'undo e', 'undo r', 'undo ', 'undo 2', 'undo .', 'undo 2', 'undo .', 'undo 2', 'undo .', 'undo 2', 'undo \n', 'undo n', 'undo t', 'undo p', 'undo -', 'undo s', 'undo e', 'undo r', 'undo v', 'undo e', 'undo r', 'undo ', 'undo 3', 'undo .', 'undo 3', 'undo .', 'undo 3', 'undo .', 'undo 3']
Подскажите пожалуйста где может быть ошибка
Ответы (2 шт):
Автор решения: Андрей Коробейников
→ Ссылка
Нужно сделать split("\n") - разбиение строки по переносу строк и strip() - что бы лишние пробелы убрать.
box_model='''ntp-server 1.1.1.1
ntp-server 2.2.2.2
ntp-server 3.3.3.3'''
ncommands = ['undo {}'.format(undo.strip()) for undo in box_model.split('\n')]
print(ncommands)
Автор решения: Эникейщик
→ Ссылка
В принципе у вас все правильно, кроме того, что результат split() нужно куда-то присвоить, т.е. можно просто заменить
box_model.split('\n')
на
box_model = box_model.split('\n')