Как вывод с несколькими строками преобразовать в список и к каждому элемента списка добавить 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')
→ Ссылка