edit: я только что понял мою (и вашу;)) ошибку, реальный ответ следует
Когда вы меняете фрахтователей, вы делаете это и для недля печати - те, у которых код ascii <32. Одним из них является символ новой строки - <code>\n, код № 10, который заменяется на код табуляции - код 9.
Исправление будет состоять в том, чтобы просто пропустить изменение всех с таким кодомномер:
lst2 = [chr(ord(x) - 1) if ord(x)>32 else x for x in lst]
Старый ответ , который не решает актуальную проблему.
Метод write()
делаетне добавлять новую строку автоматически - она записывает, какое бы значение переменной не было, и делает с этим.
Таким образом, вы должны либо добавить один самостоятельно:
with open('out_file.txt','a') as f2:
f2.write(a + '\n')
или, сохранив все измененные строкив переменной списка выведите его содержимое с помощью метода writelines()
- он разделяет каждого члена списка новой строкой.