2016-12-14 6 views

Antwort

3

Weil Sie die in der Liste enthaltenen Werte als Indizes verwenden; mark nimmt die Werte 90, 80, ..., 100. Das Abonnement midterm[90] ist offensichtlich außerhalb der Grenzen.

durch die Elemente zu durchlaufen, während auch einen Griff an der Position, bietet Python enumerate, die zusammen mit dem aktuellen Wert einen Index liefert:

midterms = [90, 80, 89, 87, 97, 100] 
for ind, mark in enumerate(midterms): 
    newMark = mark + 2 
    midterms[ind] = newMark 
print(midterms) 

Diese in der Tat, ermöglicht durch die Liste iterieren und Ändern es mühelos.

+0

ergeben soll ich denke, Sie auch die 'Bereich (len (Midterms))' Funktion nutzen zu können. – Jerrybibo

+0

@Jerrybibo du könntest du wirklich nicht sein. Genau deshalb gibt es 'enumerate'. –

1

Eine andere Möglichkeit, dies zu denken, wenn Sie neu bei Python sind (ich wusste nicht über Enumerate als Anfänger) ist Jerrybibo Vorschlag zu verwenden. Code für das würde wie folgt aussehen:

midterms = [90, 80, 89, 87, 97, 100] 
for i in range(len(midterms)): 
    newMark = midterms[i] + 2 
    midterms[i] = newMark 
print(midterms) 
0

Jim Fasarakis-Hilliard und ich teile die gleiche Antwort. Eine andere Lösung für Ihren Code ist dies:

midterms = [90, 80, 89, 87, 97, 100] 
print [mark+2 for mark in midterms] 

die auch

[92, 82, 91, 89, 99, 102]

Verwandte Themen