2016-04-26 18 views
0

Also anscheinend soll ich diese Frage für alle Menschen relevant machen, aber das ist ziemlich schwer zu tun, da es mit einem SEHR spezifischen Problem zu tun hat.Probleme mit Python für Schleifen

ich ein Online-Tutorial Programm bin mit Python lernen (V2 glaube ich) und die exorzieren ich bin will, dass ich zitiere:

  1. schreiben für -loop dass iteriert über START_LIST und .append() s jede Zahl im Quadrat * (x ** 2) * bis square_list.
  2. Dann sortieren square_list.

Ich versuche immer noch meinen Kopf um Listen zu wickeln und Schleifen so vergib mir, wenn ich

` 
start_list = [5, 3, 1, 2, 4] 
square_list = [] 
square_list.append(start_list) 
# Your code here! 
for square_list in square_list: 
    square_list.sort() 
print square_list` 

oben offensichtlich etwas fehlt bin ist das Skript, ich benutze. Ich habe den Teil über das Quadrieren weggelassen, während ich immer noch versuche herauszufinden, wie ich das machen soll. Es tut aber drucken Sie alle 5 Zahlen in der Reihenfolge. Trotzdem bekomme ich immer die Fehlermeldung "Stellen Sie sicher, dass Sie start_list nicht ändern". Ich verstehe nicht, was ich tun soll, um es nicht zu ändern.

+0

Sie sind alle "START_LIST" in "square_list" anhängt.In der Tat, Sie wollen über die Elemente in "start_list" iterieren, und fügen Sie jedes Element (nach dem Quadrieren) an square_list einzeln an. Ich nehme an, Sie wollten einen allgemeinen Zeiger, aber ich würde es gerne schreiben, wenn nötig – mephisto

Antwort

1

Sie haben nicht den Anweisungen folgen.

Schreiben Sie eine for-Schleife, die iteriert über start_list und .appends() jede Zahl im Quadrat zu square_list.

Die folgende erfüllt diese Kriterien:

for number in start_list: 
    square_list.append(number ** 2) 

Sie über START_LIST laufen. Jeder Artikel wird "Nummer" genau einmal sein. Du platzierst es und fügst es zu square_list hinzu.

0
start_list = [5, 3, 1, 2, 4] 
square_list = [] 
for num in start_list: 
    square_list.append(num ** 2) 
print sorted(square_list) 
2

Sie versuchen, ein Listenobjekt an die Liste square_list anzufügen. Das ist nicht das, was du da drin willst. Sie müssen stattdessen den Inhalt von start_list anhängen. Um die Elemente zu anfügen, verwenden Sie die Schleife wie folgt aus:

for i in start_list: 
    square_list.append(i**2) 

Dieser Code wird das Quadrat jedes Elements zu dem square_list hinzuzufügen. Dann außerhalb der Schleife, rufen Sie die .sort() Methode auf dem square_list es so zu sortieren:

square_list.sort() 
0

Die Verwendung von List Comprehensions ist hier eine bessere Idee, Sie führen das gleiche für und erstellen Sie eine neue Liste der vorhandenen Elemente, aber Sie müssen nicht Ihr Leben mit Append-Operationen komplizieren. Du iterierst über die ganze Liste und das war's.

print([item ** 2 for item in start_list]) 

Edit: Für ein Muss:

result_list = [] 
for item in start_list: 
    result_list.append(item**2) 
print(sorted(result_list)) 
+0

Da @Anon ein interaktives Tutorial tut, glaube ich, dass diese Lösung nicht funktioniert. Er kann speziell eine For-Schleife für die Lösung benötigen. – Zillolo

+0

Die Zuweisung besteht darin, eine For-Schleife zu schreiben, kein Listenverständnis. – Leva7

+0

Danke für die Klärung, wird meine Antwort bearbeiten –