Выбрать из строки числа
Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке. Например, задана строка «abc83 cde7 1 b 24». На выходе мы должны получить список [83, 7, 1, 24].
Следует посимвольно перебирать строку. Если очередной символ цифра, надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.
Обратите внимание, что данное решение извлекает именно числа, а не цифры. Иначе мы бы не получили число 78, а получили отдельно цифру 7 и цифру 8. Задача на извлечение цифр существенно проще.
Решение через цикл for:
Если в строке числа всегда отделены от слов пробелами, задача решается проще:
Здесь происходит разделение строки на слова по пробелам. В цикле с помощью метода isnumeric() каждое слово проверяется, является ли оно числом. Подобную задачу можно решить в одну строку, если использовать функцию filter().
В функцию filter() передается лямбда-выражение, проверяющее слова, и список слов. Функция возвращает список строк-чисел. Далее с помощью генератора списка строки преобразовываются в целочисленный тип.
На практике при решении подобных задач, когда надо найти и извлечь из строки что-либо, обычно пользуются регулярными выражениями. В примере ниже не обязательно, чтобы число было отделено пробелами.
Получить числа из строки python
если нужно вернуть прямо числа, а не строки с числами:
и если захочется вернуть не только целые числа:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками python или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.10.42345
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Python | Извлечь числа из строки
Много раз, работая со строками, мы сталкиваемся с проблемой, в которой нам нужно получить все числовые вхождения. Этот тип проблемы обычно возникает в конкурентном программировании, а также в веб-разработке. Давайте обсудим некоторые способы решения этой проблемы.
Способ № 1: Использование списка понимания + isdigit() + split()
Эта проблема может быть решена с помощью функции split для преобразования строки в список, а затем понимание списка, которое может помочь нам перебрать список и функция isdigit помогает вывести цифру из строки.
# Python3 код для демонстрации
# получение чисел из строки
# использование списка понимания + isdigit () + split ()
test_string = «There are 2 apples for 4 persons»
# печать оригинальной строки
print ( «The original string : » + test_string)
# использование списка понимания + isdigit () + split ()
# получение чисел из строки