给出一个GPS点以下字符串表示...拆分一个GPS点到经纬度定期
(40.714353, -74.005973)
我怎么能执行一个字符串分割同时获得纬度和经度作为单独的记号 - 无任何使用Python的多余字符(空格和括号)?
给出一个GPS点以下字符串表示...拆分一个GPS点到经纬度定期
(40.714353, -74.005973)
我怎么能执行一个字符串分割同时获得纬度和经度作为单独的记号 - 无任何使用Python的多余字符(空格和括号)?
你不需要正则表达式:
>>> str = "(40.714353, -74.005973)"
>>> tuple(float(x) for x in str.strip('()').split(','))
(40.714353, -74.005973)
如果你想有一个字符串代替数字,用x.strip()
代替float(x)
。
一个正则表达式的解决办法是:
>>> import re
>>> m = re.match(r"^\(([-\d.]+), ([-\d.]+)\)$", str)
>>> m.group(1)
'40.714353'
>>> m.group(2)
'-74.005973'
这使用capture groups来提取信息。
另请参阅re
documentation。
您可以使用ast.literal_eval()
解析字符串:
>>> import ast
>>> coord = "(40.714353, -74.005973)"
>>> ast.literal_eval(coord)
(40.714353000000003, -74.005972999999997)
' lat,long = ast.literal_eval(coord)'是完全足够的。 – 2011-03-13 16:16:13
这就是我的意思。我不知道为什么我粘贴这个过于复杂的代码片段。 ;) – 2011-03-13 16:19:28
也许我的代码让你分心;) – 2011-03-13 16:20:41
完美的作品!正则表达式的答案表示赞赏。我可以使用非正则表达式的解决方案,但我更感兴趣的是学习如何在这种情况下应用正则表达式。 – mmccomb 2011-03-13 16:56:32