2017-06-21 168 views
0

我有大約一百個包含在列表中的字符串,我需要將它們全部加在一起。要做到這一點,我使用下面的代碼 -Python - 不能將只包含數字的字符串轉換爲int

for item in listo: 
    sumo += int(item) 

我得到一個ValueError,上面寫着:

ValueError: invalid literal for int() with base 10: '' 

我不知道是什麼原因導致此特定錯誤,而不僅僅是錯誤,說該字符串不能轉換爲int。有誰知道這個問題是什麼,以及如何解決它?

編輯 - 我發現錯誤!我使用了.split()方法,並且我意外地添加了一個太多的句點,創建一個空字符串。

+2

至少有一個項目就是一個空字符串。 –

+0

我猜想發生了什麼事是你正在從一個文件讀取列表,最後一條是空行。你可以發佈一個[*完整*](http://sscce.org)的例子來證明問題嗎? –

+0

的確是!我使用了split()方法,並且意外地將它分割了一次。謝謝你的幫助! –

回答

1

我發現了錯誤!我使用了.split()方法,並且我意外地添加了一個太多的句點,創建一個空字符串。

1

類型鑄造爲int只能在傳遞的字符串有效時才能使用。例如。 int('5')有效,但int('apple')不是。

錯誤是一種自我解釋。提供的將其轉換爲整數的參數無效。如果它是特定的字符串,它會顯示該字符串。空白引號通常意味着它正在嘗試轉換的空字符串。你很高興你自己找到了錯誤。一般來說,錯誤的描述是一個很好的指向錯誤的指針。

好運

0
new_list = filter(None, list) 
lisSum = sum(map(int,new_list)) 

希望這是你期待