我正在讀取一個csv文件,並且所有行都包含字符串元素。一個可能是:將數據集列表的某些元素轉換爲浮點數
"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
但它仍然打印原始行像:
"orange", "2", "65", "banana"
我也想交流請不要使用列表解析(現在)。
這是OP的問題,Pythonic的方式可能是「更好地請求原諒而非許可」成語。意思是使用try/except塊:'除了ValueError之外,'try:parsed_row.append(float(x)):parsed_row.append(x)' - 此方法[顯示在此](http://stackoverflow.com/a/20929983/4667934),但其他答案顯示了取決於某些要求的各種方法 – JGreenwell