Remove specific characters from python list

I am new to Python. I have a list:

sorted_x = [('pvg-cu2', 50.349189), ('hkg-pccw', 135.14921), ('syd-ipc', 163.441705), ('sjc-inap', 165.722676)] 

I am trying to write a regular expression that will delete everything after the "-" and before the ",", that is, I need the same list as below:

 [('pvg', 50.349189), ('hkg', 135.14921), ('syd', 163.441705), ('sjc', 165.722676)] 

I wrote a regex as follows:

 for i in range(len(sorted_x)): title_search = re.search('^\(\'(.*)-(.*)\', (.*)\)$', str(sorted_x[i]), re.IGNORECASE) if title_search: title = title_search.group(1) time = title_search.group(3) 

But for this I need to create two new lists, and I do not want to change my original list. Can you suggest an easy way so that I can change my original list without creating a new list?

+4
source share
1 answer
 result = [(a.split('-', 1)[0], b) for a, b in sorted_x] 

Example:

 >>> sorted_x = [('pvg-cu2', 50.349189), ('hkg-pccw', 135.14921), ('syd-ipc', 163.441705), ('sjc-inap', 165.722676)] >>> [(a.split('-', 1)[0], b) for a, b in sorted_x] [('pvg', 50.349189000000003), ('hkg', 135.14921000000001), ('syd', 163.44170500000001), ('sjc', 165.72267600000001)] 
+8
source

Source: https://habr.com/ru/post/1485696/


All Articles