0

文字列内のいくつかの項目を置き換える関数を Python で定義しようとしています。私の文字列は、度分秒を含む文字列です (つまり、216-56-12.02)

適切な記号を取得できるようにダッシュを置き換えたいので、文字列は 216° 56' 12.02" のようになります

私はこれを試しました:

def FindLabel ([Direction]):
  s = [Direction]
  s = s.replace("-","° ",1) #replace first instancwe of the dash in the original string
  s = s.replace("-","' ") # replace the remaining dash from the last string

  s = s + """ #add in the minute sign at the end

  return s

これはうまくいかないようです。何が問題なのかわかりません。どんな提案でも大歓迎です。

乾杯、マイク

4

2 に答える 2

2

正直、買い替えには困りません。ちょうど.split()それ:

def find_label(direction):
    degrees, hours, minutes = direction.split('-')

    return u'{}° {}\' {}"'.format(degrees, hours, minutes)

必要に応じて、さらに圧縮できます。

def find_label(direction):
    return u'{}° {}\' {}"'.format(*direction.split('-'))

現在のコードを修正したい場合は、私のコメントを参照してください。

def FindLabel(Direction):  # Not sure why you put square brackets here
  s = Direction            # Or here
  s = s.replace("-",u"° ",1)
  s = s.replace("-","' ")

  s += '"'  # You have to use single quotes or escape the double quote: `"\""`

  return s

utf-8コメントを使用して、Python ファイルの先頭にもエンコーディングを指定する必要がある場合があります。

# This Python file uses the following encoding: utf-8
于 2012-10-25T22:01:06.670 に答える
1

これは、リストに分割してから結合することで行う方法です。

s = "{}° {}' {}\"".format(*s.split("-"))
于 2012-10-25T22:00:32.987 に答える