Как вывести строки, содержащие конкретную букву? Python

Помогите, пожалуйста, найти ошибку. Нужно вывести строки, содержащие букву "ё". При этом условия:

  1. Разрешается ввод только через input.txt.
  2. Используйте .filter() и lambda-функции.
  3. Примените метод readlines().
  4. Если буквы "ё" нет в строке - на экран ничего выводить не нужно.
  5. Строку необходимо выводить ровно в том виде, в котором она находится во входном файле (заглавная буква остаётся заглавной, строчная - строчной).

Моё решение:

with open ('input.txt', 'r', encoding = 'UTF-8') as f:
  text = f.readlines()
  text2 = list(filter(lambda s: 'ё' in s.lower(), text))
  for i in text2:
      print(i)
 

Скорее всего, появились лишние пустые строки, как можно их убрать?

Текст, из которого нужно вывести строку:

input.txt

В лесу родилась ёлочка,
В лесу она росла,
Зимой и летом стройная, зеленая была. 

Ответы (1 шт):

Автор решения: Amgarak

Мне кажется лишних строк не появляется, а все дело в дополнительном переводе каретки. Попробуйте вот так:

print(i, end='') 

Грубо говоря, у вас идет два перевода каретки \n\n

  1. \n от чтения из файла.
  2. \n от самого принта.

end='' - удалить лишний перевод каретки и вы получите ожидаемый результат.

→ Ссылка