[Tutor] how to separate the digital and the alphabeta

Dave Angel d at davea.name
Thu Nov 3 18:05:50 CET 2011


On 11/03/2011 12:30 PM, lina wrote:
> Hi,
>
> ['1AB','57GL', '76LE']
>
> How can I extract 1, 57 , 76 out?
>
> except the one I tried as:
>
>>>> for i in range(len(a)):
> 	print(a[i][:-2])
>
> 	
> 1
> 57
> 76
>
> are there some way to tell the difference between the [0-9] and [A-Z],
>
In the last thread, somebody else gave you a regular expression that 
would separate the digits out.  I avoid regex'es like the plague, for no 
good reason, so I can't help with that approach.

You can tell a particular string is all digits by using the isdigit() 
function.  So some sort of while loop will find it.  Perhaps (untested):

def getkey(item):
     """find the largest prefix of the given string that is all digits.  
return the integer so produced"""
     res = "0"
     while(res and (res + item[0]).isdigit():
         res += item[0]
     return int(res, 10)


But your (tiny) sample always has two letters after the digits. Is that 
the rule?  If so, you've got a simple version
def  getkey(item):
      b = item[:-2]
     return int(b)



-- 

DaveA



More information about the Tutor mailing list