Ich habe dies mit den folgenden Listen getestet ["Mix", "Xanadu", "Apple", "Aardvark", "XYZ"] und ["BBB", "CCC", "AXX", "Xzz "," xaa "] und aus irgendeinem Grund sind die Zählungen für beide Listen unterschiedlich? Ich mache Probleme, weil die Funktion aus irgendeinem Grund die "xaa" nicht als Auslöser der if-Anweisung im zweiten Testfall aufnimmt. Was mir jedoch aufgefallen ist, ist, dass selbst die Zählung nicht zwischen den beiden liegt, und meine einzige Theorie ist, dass die if-Anweisung zuerst ausgeführt wird, so dass die Anzahl-Addition angibt, wie oft die if-Anweisung nicht ausgelöst wird.Addition oder IF innerhalb einer for-Schleife?
Antwort
Ihnen wurde gesagt "ändern Sie keine Liste, die Sie über iterieren" und das wird Ihr Problem beheben.
Sie können jedoch diese vereinfachen, wenn alles, was Sie tun, ist die Sortierung basierend auf, wenn ein Wort mit beginnt x
+ lexikalischen Ordnung, dann können Sie wie etwas tun:
>>> a = ["mix", "xanadu", "apple", "aardvark", "xyz"]
>>> sorted(a, key=lambda x: (x[0] != 'x', x))
['xanadu', 'xyz', 'aardvark', 'apple', 'mix']
Dies funktioniert, weil x[0] != 'x'
-0
entspricht wenn x[0] == 'x'
und 1
wenn x[0] != 'x'
, und Tupel Bestellung alle x
Worte an die Front erzwingt.
Wenn Sie die Anzahl der Wörter zu zählen, die mit x
beginnen, dann können Sie:
>>> sum(x[0] == 'x' for x in a)
2
Das ist definitiv richtig. Und ich sollte das tun, aber im Moment versuche ich nur die Grundlagen herauszufinden, warum meine Zählungen nicht funktionieren. – a1letterword
Ich gehe davon aus, dass die "** keine' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'mit diesem Problem behoben haben. – AChampion
- 1. Mehrere oder Bedingungen innerhalb von if-Anweisungen
- 2. "oder" Bedingungen verschiedener Zeichenketten innerhalb einer if ... then Anweisung
- 3. definieren fstream innerhalb einer ‚if‘ bedingte
- 4. If/else-Funktion innerhalb einer Last()
- 5. Aufruf einer Variablen in einer if-Anweisung innerhalb einer Funktion
- 6. eine bitweise Mit & innerhalb einer if-Anweisung
- 7. Ändern eines Wörterbuchs innerhalb einer if-Anweisung
- 8. ERRORLEVEL innerhalb IF
- 9. Mit If innerhalb Makro
- 10. UNIX: Schnitt innerhalb If
- 11. Platzieren einer foreach-Schleife innerhalb einer if-Bedingung
- 12. Cursor innerhalb IF() Dann
- 13. Befehle innerhalb If-Bedingung
- 14. MySQL - IF innerhalb SELECT
- 15. Regex innerhalb `if` prüfen
- 16. Warum ist eine if-Anweisung und eine Variablendeklaration schneller als eine Addition in einer Schleife?
- 17. Addition für Array-Werte
- 18. Mit einer if-Anweisung innerhalb einer for-Schleife
- 19. If-Anweisung innerhalb Javascript-Variable
- 20. In PHP, wie machst du eine if-Anweisung innerhalb der if einer if-Anweisung?
- 21. Wie verwendet man die Addition korrekt innerhalb existiert konditional? CLIPS
- 22. if-Anweisung innerhalb asp Dropdownlist
- 23. Roheingabe innerhalb der If-Anweisung?
- 24. Excel ODER IF-Anweisung
- 25. Aufruf Block innerhalb einer If-Bedingung: Django-Vorlage
- 26. PHP Kombinieren von Variablen und Ausdruck innerhalb einer if-Anweisung
- 27. Prolog Addition
- 28. Wie können Sie eine Teilzeichenfolge innerhalb einer if-Anweisung hinzufügen?
- 29. Binäre Addition in Java
- 30. CUDA: __synctreads() innerhalb if Anweisungen
** nicht eine Sammlung ändern Sie (Liste, ...), während über sie iterieren ** .. –
Eigentlich habe ich das gerade probiert, und die Anzahl variiert immer noch. – a1letterword
können Sie deep.copy (Ihre Liste) verwenden, um eine Kopie davon zu erstellen und die Kopie zu ändern – haifzhan