Anzahl der Abläufe einer for-Schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Evil4President
User
Beiträge: 83
Registriert: Dienstag 15. Januar 2008, 15:39
Kontaktdaten:

Montag 9. Juni 2008, 17:46

Hallo Leute,
mir ist leider kein besserer Titel fürs Topic eingefallen, aber ich kanns ja hier genauer beschreiben.
Ich habe in meinem Programmablauf eine for-Schleife, in der ich durch Division ermittle, wie oft eine Zahl in eine andere passt (wäre in meinem Fall die Länge einer Liste)... Nun will ich haben, dass die Länge der beiden Listen durch "Listenaddition" gleichgesetzt wird... Dazu möchte ich die for-Schleife, in der ich diesen "Rest" berechne genau so oft ablaufen lassen, wie der int(rest) groß ist, also z.B. 3 mal hintereinander...
Danach kann ich den Rest, der durch Subtrahieren ermittelt wird, per Slicings einbauen...
Mein Problem ist nun nur, festzulegen, dass die Schleife genau sooft abläuft, wie der Rest groß ist.
Hoffe mein Problem ist relativ klargeworden.
Vielen Dank schonmal,

evil4president
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 9. Juni 2008, 18:04

Ich weiß nicht ob ich es so ganz verstehe, aber mir kommt es vor, dass du eine While-Schleife suchst. Alternativ kannst du auch ``break`` in der for-Schleife nutzen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Evil4President
User
Beiträge: 83
Registriert: Dienstag 15. Januar 2008, 15:39
Kontaktdaten:

Montag 9. Juni 2008, 18:14

Mir ist auch gerade aufgefallen, dass ich es etwas falsch erklärt habe... :)
Bin selbst gerade nicht 100% geistig bei mir, daher kann es auch sein, dass ich die Lösung nicht finde.
Ich habe etwas in der Art hier:

Code: Alles auswählen

liste1=list(wort)
liste2=list(text)
# rest berechnen
if len(liste1)>len(liste2):
     rest=int(len(liste1)/len(liste2))
Mit diesem Wert von "rest" soll er nun etwas dieser Art machen... Aber so geht das nicht:

Code: Alles auswählen

rest*(liste2+liste1)
Ich denke es sollte so etwas verständlicher sein; er soll einfach "rest"-mal sooft die kleinere Liste zur größeren addieren...

Habe gerade beim Überdenken einen etwas komplizierteren Lösungsweg entdeckt (glaube ich zumindest), werde den mal versuchen, wäre aber trotzdem dankbar für Hilfe ;-)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 9. Juni 2008, 18:21

Wenn man die Klammern weglässt wird es richtiger. Du multiplizierst die kleinere Liste mit ``rest`` und hängst die an die größere Liste an.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Evil4President
User
Beiträge: 83
Registriert: Dienstag 15. Januar 2008, 15:39
Kontaktdaten:

Montag 9. Juni 2008, 19:35

Achso,
vielen Dank Leonidas!
Habe es jetzt über eine weitere for-Schleife auch gelöst. Heute Mittag stand ich etwas auf dem Schlauch...
Werde mir das aber merken, dass man Listen einfach multiplizieren kann.
Danke nochmal!
Antworten