Чтобы найти числа в строке с помощью Python, вы можете использовать несколько методов. Один из эффективных способов — использовать функцию findall() модуля re с шаблоном регулярного выражения для извлечения цифр.
В качестве альтернативы вы можете перебирать строку, использовать isdigit() для идентификации чисел и split() строку, чтобы изолировать их, добавляя результаты в список. Кроме того, функция чисел из библиотеки строк предлагает более прямой подход к идентификации числовых символов в строке.
- Метод 1: с помощью isdigit()
- Способ 2: с помощью функций Split() и Append()
- Метод 3: с помощью модуля регулярных выражений
- Метод 4: используя библиотеку чисел из строки nums_from_string
Метод 1: с помощью isdigit()
В этом разделе мы поймем, как найти число в строке в Python, используя метод isdigit().
В Python метод isdigit() возвращает True, если во входной строке присутствуют все символы цифр. Более того, этот метод позволяет извлекать цифры из строки в Python. Если ни один символ не является цифрой в данной строке, возвращается значение False.
Вот синтаксис использования метода isdigit() в Python.
string.isdigit()
Примечание. Однако этот метод не принимает никаких аргументов и всегда возвращает логическое значение: ИСТИНА или ЛОЖЬ.
Давайте возьмем пример и проверим, как найти число в строке в Python.
new_string = "Germany26China47Australia88" emp_str = "" for m in new_string: if m.isdigit(): emp_str = emp_str + m print("Find numbers from string:",emp_str)
Выход:
- Мы использовали цикл for для перебора каждого символа, определенного в строке.
- И использовал метод isdigit() с условием if, чтобы определить, какой символ является числом или цифрой.
Вот выполнение следующего данного кода:
Find numbers from string: 264788
Способ 2: с помощью функций Split() и Append()
В Python функция add() используется для добавления элемента в конец списка. В то время как функция Split() в Python используется для разбиения строки на список.
Исходный код:
new_str = "Micheal 89 George 94" emp_lis = [] for z in new_str.split(): if z.isdigit(): emp_lis.append(int(z)) print("Find number in string:",emp_lis)
Выход:
- В приведенном выше примере мы использовали цикл for для повторения каждого слова, заданного в переменной new_str.
- После этого мы использовали метод isdigit(), чтобы найти число или тип данных int.
- Затем мы используем метод str.append() и передаем int(z) со словом, чтобы преобразовать его в целое число и сохранить в списке emp_lis.
Как только мы напечатаем список, в выводе будет отображаться только список, содержащий целочисленное значение.
new_str = "Micheal 89 George 94" emp_lis = [] for z in new_str.split(): if z.isdigit(): emp_lis.append(int(z)) print("Find number in string:",emp_lis)
Метод 3: с помощью модуля регулярных выражений
- Модуль re в Python — это модуль регулярных выражений, который помогает нам работать с регулярными выражениями.
- Мы можем получить все числа из строки, используя регулярное выражение «[0-9]+» с помощью метода re.findall(). [0-9] представляет собой поиск всех символов, соответствующих от 0 до 9, а символ + указывает на непрерывные цифры.
- Однако метод re.findall() в Python используется для сопоставления шаблона в строке слева направо и возвращает результат в виде списка строк.
Синтаксис:
re.findall ( pattern, string, flags=0 )
Давайте возьмем пример и проверим, как найти число в строке с помощью регулярных выражений в Python.
import re new_string = 'Rose67lilly78Jasmine228Tulip' new_result = re.findall('[0-9]+', new_string) print(new_result)
Выход:
- В приведенном выше коде мы создали переменную строкового типа с именем «new_string». Эта переменная содержит некоторые целые и буквенные символы.
- Затем мы использовали метод re.findall(), чтобы найти все целочисленные значения из переменной new_string.
Как только мы напечатаем переменную new_result, которая является нашим результатом, мы получим только целочисленные значения в списке Python:
['67', '78', '228']
Метод 4: используя библиотеку чисел из строки nums_from_string
Модуль nums_from_string состоит из нескольких функций, которые могут помочь извлечь целые числа или токены числовой строки из заданной строки. Однако, чтобы использовать этот модуль, сначала нам необходимо его установить, поскольку он не является встроенным модулем Python.
Вот команда, которую мы можем использовать для установки модуля nums_from_string в Python.
pip install nums_from_string
Как только этот пакет будет установлен в нашей среде Python, нам нужно будет использовать метод get_nums() для получения всех чисел из заданной строки.
Пример такой реализации приведен ниже.
import nums_from_string sample_string = '''There are 30 employees in the company, out of which 10 are in the IT department, 5 people are there in Marketing, 8 people are there in Sales, 2 are there in Legal, and 5 in Training.''' print("List of numbers from sample_string are: ") print(nums_from_string.get_nums(sample_string))
Выход:
- В приведенном выше примере мы использовали метод nums_from_string.get_nums() для получения всех чисел из переменной sample_string.
- Более того, этот метод вернет список, содержащий все числовые значения, имеющиеся в sample_string.
Вот окончательный результат вышеуказанной программы Python:
List of numbers from sample_string are [30, 10, 5, 8, 2, 5]