給出一個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