2013-04-08 16 views
7

Ich wurde gebeten, eine Liste von ganzen Zahlen (x) zu akzeptieren, den ersten Wert und den letzten Wert in der Liste hinzuzufügen und dann eine Ganzzahl mit der Summe zurückzugeben. Ich habe den folgenden Code verwendet, um das zu tun, aber das Problem, das ich habe, ist, dass, wenn ich versuche, die Summe zu bewerten, es tatsächlich eine Ein-Punkt-Liste statt einer Ganzzahl ist. Ich habe versucht, es auf einen int zu werfen, aber ich kann es anscheinend nicht zur Arbeit bringen.Konvertieren einer Ein-Objekt-Liste in eine ganze Zahl

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

Wie sollte das Verhalten sein, wenn 'x' eine Zahl enthält? Sollte es 'x [0]' oder '2 * x [0]' zurückgeben? –

Antwort

13

Verwenden Indizes

Sie schneiden die Liste, die Listen zurück. Hier sollten Sie Indizes verwenden statt:

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

Warum schneidet falsch für Sie:

Wenn Sie x[0:1] tun, du nimmst die Liste der Elemente vom Anfang der Liste zum ersten Intervall.

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

Doing x[0:2], zum Beispiel, würde Rückholeinzelteile 0 und 1.

4

Es läuft alles auf diese nach unten:

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

In Python, eine Negativliste Index bedeutet: Start Indizierung von das Recht der Liste in Richtung nach links, wo die erste Position von rechts nach links -1 ist, ist die zweite Position -2 und die letzte Position ist -len(lst).

4

Verwendung Slice Notation:

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

x [0] = geben Ihnen 0 th Index der Liste, ersten Wert.

x [-1] = gibt Ihnen das letzte Element der Liste.

Verwandte Themen