2013-04-08 76 views
7

我被要求接受一個整數列表(x),在列表中添加第一個值和最後一個值,然後返回一個整數與總和。我用下面的代碼來做到這一點,但我有的問題是,當我嘗試評估總和時,它實際上是一個單項列表而不是整數。我試圖將其轉換爲int,但我似乎無法使其工作。轉換一個項目列表爲一個整數

def addFirstAndLast(x): 
    lengthOfList = len(x) 
    firstDigit = x[0:1] 
    lastDigit = x[lengthOfList:lengthOfList-1] 
    sum = firstDigit + lastDigit 
    return sum 
+0

如果'x'包含一個數字,行爲應該如何?它應該返回'x [0]'還是'2 * x [0]'? – 2013-04-08 20:03:55

回答

13

使用索引

你切片列表,它會返回列表。在這裏,你應該使用索引來代替:

firstDigit = x[0] 
lastDigit = x[-1] 

爲什麼你錯切片:

當你做x[0:1],你從列表的開頭,取放物品的名單到第一個區間。

item0, item1, item2, item3 
^ interval 0 
     ^interval 1 
      ^interval 2 
        ^interval 3  

x[0:2],例如,將返回的項目0和1

4

這一切都歸結爲:

def addFirstAndLast(x): 
    return x[0] + x[-1] 

在Python,負列表索引是指:從開始的索引列表右邊的方向向左,第一個位置從右到左是-1,第二個位置是-2,最後一個位置是-len(lst)

4

使用Slice Notation

def addFirstAndLast(x): 
    return x[0] + x[-1] 

X [0] =會給你0 索引列表,第一值

X [-1] =會給你列表的最後元素