11

これは比較的簡単なはずだと思いますが、理解できません。座標を表す文字列が+27.5916+086.5640あり、経度と緯度の間にコンマを入れる必要があるので、を取得し+27.5916,+086.5640ます。

APIを調べていますが、これに対応できるものが見つからないようです。

私が書いているプログラムはPython3.Xをサポートしていないので、ああ、私はPython2.7.3を使用する必要があります。

4

4 に答える 4

9

座標がc、の場合、これは機能します。ただし、これは負の値では機能しないことに注意してください。ネガにも対処する必要がありますか?

",+".join(c.rsplit("+", 1))

ネガにも対処します。

import re
parts = re.split("([\+\-])", c)
parts.insert(3, ',')
print "".join(parts[1:])

出力

+27.5916,+086.5640'

そしてネガの場合:

>>> c = "+27.5916-086.5640"
>>> parts = re.split("([\+\-])", c)
>>> parts.insert(3, ',')
>>> "".join(parts[1:])
'+27.5916,-086.5640'
于 2012-12-01T01:14:36.657 に答える
4

カンマがすでに存在する場合、このメソッドはカンマを処理します。

str = '-27.5916-086.5640'
import re
",".join(re.findall('([\+-]\d+\.\d+)',str))
'-27.5916,-086.5640'
于 2012-12-01T01:23:25.433 に答える
3

2番目のコンポーネントは、先行ゼロと固定小数点以下の桁数でフォーマットされているように見えるので、これはどうでしょうか。

>>> s='+27.5916+086.5640'
>>> s[0:-9]+','+s[-9:]
'+27.5916,+086.5640'
于 2016-03-02T07:59:51.787 に答える
1

正規表現の仕事のように聞こえます:

Python 2.7.3 (default, Aug 27 2012, 21:19:01) 
[GCC 4.2.1 Compatible Apple Clang 4.0 ((tags/Apple/clang-421.0.57))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> coords = '+27.5916+086.5640'
>>> lat, long = re.findall('[+-]\d+\.\d+', coords)
>>> ','.join((lat, long))
'+27.5916,+086.5640'

参考文献:

于 2012-12-01T01:21:16.743 に答える