Найти в строке все цифры и вывести их

Сама задача Пусть дано строку, на основе этой строки сформируйте новый, содержащая только цифры. Выведите строку.код
str=input('Строка:')
print(''.join(s for s in str if s.isdigit()))
13 ответов

Проще чем в одну строку?


Может быть человек не понимает, как работают генераторы.Держи ради разнообразия регулярку:
#!/usr/bin/python3
import re
s = input('Строка:')
print(re.sub(r'\D', '', s))


print(''.join((s for s in str if s.isdigit())))
s for s in str if s.isdigit() # это SyntaxError
(s for s in str if s.isdigit()) # это генератор
[s for s in str if s.isdigit()] # это списковое выражение
# а еще есть dict comprehension. но это уже совсем другая история)) пусть останется в качестве домашнего задания


s = input('Строка:')
print("".join(filter(str.isdigit, s)))


print(''.join(s for s in str if s.isdigit()))
s = input('Строка:')
print(''.join[i for i in s if i.isdigit()])
str служебное слово питона, не надо перекрывать


вы че реально не видите что ваши строчки с join вам выплюнут SyntaxError ?))) дважды написали два разных человека) а ошибка одна и таже)))во втором случае еще хуже кстати чем в первом))


В варианте с filter не выплюнет


вы че реально не видите что ваши строчки с join вам выплюнут SyntaxError ?)))
это какие?


print(''.join[i for i in s if i.isdigit()])
тут не хватает скобок у join


тут не хватает скобок у join
это да, но мой вариант с filter, там не может быть синтаксической ошибки


но мой вариант с filter, там не может быть синтаксической ошибки
Об этом я написал выше


s = input('Строка:')
print(''.join([i for i in s if i.isdigit()]))
точно исправил


woldemas, да в том то и дело что я не про фитр я про код ТС и vic5710