Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get integer values from a string in Python?

Suppose I had a string

string1 = "498results should get"  

Now I need to get only integer values from the string like 498. Here I don't want to use list slicing because the integer values may increase like these examples:

string2 = "49867results should get"  string3 = "497543results should get"  

So I want to get only integer values out from the string exactly in the same order. I mean like 498,49867,497543 from string1,string2,string3 respectively.

Can anyone let me know how to do this in a one or two lines?

like image 546
Shiva Krishna Bavandla Avatar asked Jul 05 '12 06:07

Shiva Krishna Bavandla


People also ask

How do you get the integer value of a string in Python?

To find numbers from a given string in Python we can easily apply the isdigit() method. In Python the isdigit() method returns True if all the digit characters contain in the input string and this function extracts the digits from the string.


2 Answers

>>> import re >>> string1 = "498results should get" >>> int(re.search(r'\d+', string1).group()) 498 

If there are multiple integers in the string:

>>> map(int, re.findall(r'\d+', string1)) [498] 
like image 66
jamylak Avatar answered Sep 29 '22 04:09

jamylak


An answer taken from ChristopheD here: https://stackoverflow.com/a/2500023/1225603

r = "456results string789" s = ''.join(x for x in r if x.isdigit()) print int(s) 456789 
like image 45
3 revs Avatar answered Sep 29 '22 02:09

3 revs