2017-03-09 1 views

答えて

0

まず、あなたは(単純または二重)引用符のいずれかを脱出しなければならないことに注意してください。それはあなたの使用のために大丈夫だということ

>>> import re 
>>> z = '- (S) 19º 52\' 11,528", 19° 52\' 11,528"' 
>>> [int(x) for x in re.split("\D+",z) if x] 
[19, 52, 11, 528, 19, 52, 11, 528] 

注:

その後re.splitが最後に生成し、整数に変換することができ、空の文字列を削除するには非番号にre.split()を使用して、リスト内包でそれを包みます負の数値に対しては正しく機能しません(-符号は削除されます)

浮動小数点数を適切に処理するには、それはもう少し複雑ですが、負の数を持たない限りでも実行できます:

>>> [float(x.replace(",",".")) for x in re.split("[^\d,]+",z) if x and x!=","] 
[19.0, 52.0, 11.528, 19.0, 52.0, 11.528] 
+0

このようなlong/latフォーマットは固定IIRCなので、常に同じ数のフィールドを取得できます。 。分割から常に「」、「」を除外することができます。しかし、それは私たちを "文字列からのintまたはfloat"の基礎にします。しかし、完全性のために編集されています。 –

+0

ありがとう! – Wesley

関連する問題