In Python, how do you get the last and second last element in string ?
string "client_user_username_type_1234567"
expected output : "type_1234567"
            Asked
            
        
        
            Active
            
        
            Viewed 5,775 times
        
    2
            
            
         
    
    
        Ajax1234
        
- 69,937
- 8
- 61
- 102
 
    
    
        Atul Arora
        
- 23
- 1
- 3
3 Answers
2
            Try this :
>>> s = "client_user_username_type_1234567"
>>> '_'.join(s.split('_')[-2:])
'type_1234567'
 
    
    
        Arkistarvh Kltzuonstev
        
- 6,824
- 7
- 26
- 56
0
            
            
        You can also use re.findall:
import re
s = "client_user_username_type_1234567"
result = re.findall('[a-zA-Z]+_\d+$', s)[0]
Output:
'type_1234567'
 
    
    
        Ajax1234
        
- 69,937
- 8
- 61
- 102
0
            
            
        There's no set function that will do this for you, you have to use what Python gives you and for that I present:
"_".join("one_two_three".split("_")[-2:])
In steps:
- Split the string by the common separator, "_" - s.split("_") 
- Slice the list so that you get the last two elements by using a negative index - s.split("_")[-2:] 
- Now you have a list composed of the last two elements, now you have to merge that list again so it's like the original string, with separator "_". - "_".join("one_two_three".split("_")[-2:]) 
That's pretty much it. Another way to investigate is through regex.
 
    
    
        Chayemor
        
- 3,577
- 4
- 31
- 54