2014-07-11 153 views
1

這就是我想要做的。創建一個新列表(addtwo),其中每個元素是源列表(numberlist)中相應元素和前一元素的總和。顯然,新列表中的第一個元素與源列表中的第一個元素相同。在列表中添加數字並追加到新列表中

numberlist = [2, 4, 5, 1, 8, 2, 0, 1] 
addtwo = [el[0] + el[1] for el in numberlist] 

生成此錯誤消息: 類型錯誤:「詮釋」對象有沒有屬性「的GetItem

這是新的名單應該是什麼樣子,在「numberlist」使用數字:

[2, 6, 9, 6, 9, 10, 2, 1] 
+0

'爲EL在numberlist'遍歷*整數*直接,怎麼你可以索引它們嗎? – jonrsharpe

回答

0

在你最初的嘗試中,el只是一個整數,而不是一個列表,所以試圖索引它會生成錯誤消息。

您需要迭代原始列表的內容,計算總和,然後將這些總和追加到新列表中。

事情是這樣的代碼:

numberlist = [2, 4, 5, 1, 8, 2, 0, 1] 
newlist = [] 
newlist.append(numberlist[0]) 
for index in range(1,len(numberlist)): 
    sum = numberlist[index] + numberlist[index-1] 
    newlist.append(sum) 
print 'newlist', newlist 
使用列表理解,從最初的名單主要元素

替代版本

numberlist = [2, 4, 5, 1, 8, 2, 0, 1] 
newlist_comp = [numberlist[index] + numberlist[index-1] for index in range(1,len(numberlist))] 
newlist_two = numberlist[0] + newlist_comp 
print 'newlist_two', newlist_two