Reverse-index in einer Liste
Für die Liste k1=[31.0, 72, 105.0, 581.5, 0, 0, 0], ich möchte hinzufügen, eine Konstante, für Beispiel 100 auf die erste nicht-null-element in der umgekehrten Liste.
dies ist, was ich will: newk1=[0, 0, 0, 681.5, 105, 72, 31]
Als Anfänger in Python konnte ich es nicht herausfinden. Könnten Sie mir bitte helfen. Das ist mein code:
k1=[31.0, 72, 105.0, 581.5, 0, 0, 0]
Inverselist=[]
for i in range(len(etack1)):
Inverselist.append(etack1[-(i+1)])
print("Inverselist", Inverselist)
newk1=Inverselist
run_once = 0
while run_once < 1:
for j in range(len(newk1)):
if newk1[j-1]>0:
newk1[j-1]=newk1[j-1]+100
run_once = 1
break
print("Newk1", newk1 )
reversed
ist eine nützliche built-in-Funktion für diese. Es ist einfacher, eine Liste umkehren mit, dass, als die aktuelle Methode.- Warum
j-1
?j
bereits läuft von 0 bislen(newk1)-1
, so brauchen Sie nicht einej-1
für die Indizierung. - Sobald du dein problem gelöst, überlegen, Ihren code auf codereview.stackexchange.com, es gibt eine Menge von zusätzlichen Dinge, die verbessert werden können.
- Mögliche Duplikate von Wie kann ich das umkehren einer Liste in python?
InformationsquelleAutor rezzz | 2017-10-30
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, du bist overthinking dies:
Ersten, zum umkehren der Liste:
Ersetzen Sie dann das erste nicht-null-element:
Wenn Sie umkehren möchten, können Sie tun es einfach durch schneiden. Wie unten
Sobald Sie gehen Sie durch die Liste, Sie brauchen nur zu überprüfen, wenn das erste element einer nicht-null-element
Nur eine dumme Art und Weise. Ändert die Liste, anstatt ein neues zu erstellen.
Können Sie versuchen, diese:
Ausgabe:
for i in reversed(k1)
statt.Hier ist eine Lösung mit
reversed
statt schneiden mit[::-1]
: