私はcsvファイルを読み込み、すべての行に文字列要素が含まれています。一つは、次のようになります。データセットのリストの一部の要素をfloatに変換する
"orange", "2", "65", "banana"
私はなるために、私のデータセット内では、これを変更したい:ここ
row = ["orange", 2.0, 65.0, "banana"]
は私のコードです:
data = f.read().split("\n")
for row in data:
for x in row:
if x.isdigit():
x = float(x)
print row
しかし、それはまだ元の行を印刷しますlike:
"orange", "2", "65", "banana"
私も交流したいリスト内包(今のところ)を使わずにこれを知る。
これは、OPが持つ問題です。よりPythonの方法は、 "許可よりも寛容を求めるのが良い"かもしれません。意味は、try/exceptブロックを使います: 'try:parsed_row.append(float(x))ValueError:parsed_row.append(x)'を除いて - このメソッドは[ここに示されています](http://stackoverflow.com/a/20929983)/4667934)、他の回答は、要件に応じてこれを行うさまざまな方法を示しています – JGreenwell