2016-06-08 61 views
0

我正在讀取CVS文件中的數據,當我將數據導入列表時,它會將數字視爲字符串。 這是輸出:['1.0', '1.20798878439', '1.52379907139']但我想是這樣的[1.0, 1.20798878439, 1.52379907139]讓我處理的實數,不是字符串?有什麼建議麼?如何從實數列表中刪除引號?

+0

你所試圖做的是叫做'casting'或'型conversion'。閱讀更多[這裏](https://en.wikipedia.org/wiki/Type_conversion) – IanAuld

+1

歡迎來到StackOverflow。未來的指針是,如果你有任何問題,基本或硬核 - 請包括你迄今爲止嘗試解決它。截至目前,您的問題沒有任何證據表明您自己會努力解決問題,並且在SO和任何您可能想到的搜索引擎中都有詳細記錄。在這種情況下,我在下面發佈了一個答案,以便您可以繼續使用您的編程,但我也將此問題標記爲重複。 – Torxed

回答

3
my_string_list = ['1.0', '1.20798878439', '1.52379907139'] 
my_int_list = [float(i) for i in my_string_list] 

您只需遍歷它並將其轉換爲您需要的數據類型即可。

正如@IanAuld指出的 - 這叫做type castingtype conversion

有能夠處理棘手的轉換你的庫。
但最基本的要素是for循環,每個對象遍歷在列表並將其轉換和最後結果放在一個新的列表。

如果我是擴大使用list comprehensions爲循環常規我的答案,它應該是這樣的:

my_string_list = ['1.0', '1.20798878439', '1.52379907139'] 
my_int_list = [] 
for item in my_string_list: 
    my_int_list.append(float(item)) 
0

您可以強制類型轉換,並通過使用列表理解像這樣輕鬆地創建一個新的列表:

>>> [float(x) for x in ['1.0', '1.20798878439', '1.52379907139']] 
[1.0, 1.20798878439, 1.52379907139] 

使用變量:

>>> a = [1.0, 1.20798878439, 1.52379907139] 
>>> b = [float(x) for x in a] 
>>> print(b) 
[1.0, 1.20798878439, 1.52379907139] 

更多在列表解析信息: https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions