[解決済み】Pythonで文字列がfloatに変換できるかどうか確認する方法
2022-04-06 22:05:19
質問
文字列のリストを実行して、可能であれば整数または浮動小数点数に変換するPythonのコードをいくつか持っています。 整数のためにこれを行うことは非常に簡単です
if element.isdigit():
newelement = int(element)
浮動小数点数はもっと難しいです。今、私が使っているのは
partition('.')
で文字列を分割し、片側または両側が数字であることを確認します。
partition = element.partition('.')
if (partition[0].isdigit() and partition[1] == '.' and partition[2].isdigit())
or (partition[0] == '' and partition[1] == '.' and partition[2].isdigit())
or (partition[0].isdigit() and partition[1] == '.' and partition[2] == ''):
newelement = float(element)
これはうまくいくのですが、明らかにそのためのif文がちょっと面倒なんです。 私が考えた他の解決策は、try/catch ブロックで変換をラップして、それが成功するかどうかを確認することです。 この質問 .
どなたか他のアイデアをお持ちの方はいらっしゃいませんか?パーティションとtry/catchアプローチの相対的な利点についての意見は?
どのように解決するのですか?
私なら...
try:
float(element)
except ValueError:
print "Not a float"
...シンプルで、うまくいきますね。ただし、要素が1<<1024のような場合はOverflowErrorを投げることに注意してください。
もう一つの選択肢は、正規表現です。
import re
if re.match(r'^-?\d+(?:\.\d+)$', element) is None:
print "Not float"
関連
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] 文字列が数値(float)であるかどうかを確認するにはどうすればよいですか?