ほとんどのPython的な文字列から数値を抽出する方法

sploiber:

私は始まる、番号を含む文字列を有するX例えば、"x270"若しくは"x9"それは、常にで始まり、X私は番号を取得する必要があります。

私はこれをやっています:

blatz = "x22"
a1 = int(re.search("x(\d+)", blatz).group(1))

これは非常にPython的思えません。私は、よりエレガントな解決策を歓迎します。

colidyre:

使用するreライブラリはやり過ぎのようです。あなたは各文字列で始まることを言っているので、あなたは、パターンを検索する必要はありませんx

あなたは、単純に行うことができるようにスライスを

blatz = "x22"
a1 = int(blatz[1:])

あなたは、さらにチェックが必要な場合は、あなたが見ることができstr.startswith() str.endswithおよび/またはstr.isdigit()

スライスは非常にpythonistic見えますが、使用する可能性もあり、他の文字列のメソッドリードが同じ目標には:

blatz = "x22"
a2 = int(blatz.lstrip("x"))  # strip "x" from the left
a3 = int(blatz.partition("x")[-1])  # get everything after "x"
a4 = int(blatz.replace("x", ""))  # replace every "x" with empty string
...

しかし、スライスは、より速く、Pythonプログラマのための珍しい何もないです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=25007&siteId=1