从python列表中删除特定字符
我对Python相当陌生。我的名单如下:从python列表中删除特定字符,python,regex,Python,Regex,我对Python相当陌生。我的名单如下: sorted_x = [('pvg-cu2', 50.349189), ('hkg-pccw', 135.14921), ('syd-ipc', 163.441705), ('sjc-inap', 165.722676)] for i in range(len(sorted_x)): title_search = re.search('^\(\'(.*)-(.*)\', (.*)\)$', str(sorted_x[i]), re.IGNORE
sorted_x = [('pvg-cu2', 50.349189), ('hkg-pccw', 135.14921), ('syd-ipc', 163.441705), ('sjc-inap', 165.722676)]
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)
我正在尝试编写一个正则表达式,它将删除“-”之后和“,”之前的所有内容,即我需要相同的列表,如下所示:
[('pvg', 50.349189), ('hkg', 135.14921), ('syd', 163.441705), ('sjc', 165.722676)]
我写了一个正则表达式如下:
sorted_x = [('pvg-cu2', 50.349189), ('hkg-pccw', 135.14921), ('syd-ipc', 163.441705), ('sjc-inap', 165.722676)]
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)
但这需要我创建两个新列表,我不想更改原始列表。
你能建议一个简单的方法,这样我就可以修改我的原始列表而不创建新的列表吗
result = [(a.split('-', 1)[0], b) for a, b in sorted_x]
例如:
>>> 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)]
这里有一个提示,您不需要在列表中的逗号后处理,您的正则表达式只需要处理“title”,所以要删除-cu2,您只需要处理该文本字符串。前往python文档,查看列表/元组是否工作得很好!非常感谢:)