Как вывести строки, содержащие конкретную букву? Python
Помогите, пожалуйста, найти ошибку. Нужно вывести строки, содержащие букву "ё". При этом условия:
- Разрешается ввод только через input.txt.
- Используйте .filter() и lambda-функции.
- Примените метод readlines().
- Если буквы "ё" нет в строке - на экран ничего выводить не нужно.
- Строку необходимо выводить ровно в том виде, в котором она находится во входном файле (заглавная буква остаётся заглавной, строчная - строчной).
Моё решение:
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
\nот чтения из файла.\nот самого принта.
end='' - удалить лишний перевод каретки и вы получите ожидаемый результат.