2014-12-06 27 views
-1

我是蟒蛇N00B和我試圖在此工作的功能轉換成一個列表理解:列表理解返回的錯誤,同時嘗試/除非不

def sums_lists(list1, list2) 
    try: 
      sums_list = [] 
      for index in range(14): 
       sums_list.append(list1[index]+list2[index]) 
     except: 
      pass 

上面的代碼工作,但是當我這個轉換到列表理解的格式,像這樣:

sums_list = [(list1[index]+list2[index])for index in range(14)] 

它返回一個錯誤Unsupported operand type(s) for + int and str

數據與是個人的數據記錄,地址,職業,收入等工作,所以整數和strs。

我不明白爲什麼它在try循環中運行,而不是理解?

+0

** try **的全部**:除了:'是爲了壓制錯誤(除非:「是非常糟糕的練習,順便說一下)。你期望會發生什麼?你能提供投入,預期和實際產出嗎? – jonrsharpe 2014-12-06 11:10:16

+0

謝謝..爲此。它來自網站的數據行格式爲:「39,State-gov,77516,Bachelors,13,N​​ever-married,Adm-clerical,Not-in-family,White,Male,2174,0,40,United - 州,<= 50K「。輸出是用兩個列表的元素和來生成2個列表。這只是爲我正在工作的一份任務' – 2014-12-06 11:27:27

+0

**編輯問題**。你的第一個片段的輸出是什麼? – jonrsharpe 2014-12-06 11:32:54

回答

0

一個單一的除了會阻止任何除外被提出。

要解決你的代碼,試試這個:

sums_list = [(int(list1[index]) + int(list2[index])) for index in range(14)] 

sums_list = [(str(list1[index]) + str(list2[index])) for index in range(14)] 

也許這些列表中的一個有一個字符串,而不是一個整數,字符串和整數不能由串聯+ operator

相關問題