Ich könnte diese Verwendung so implementieren [a[i:i+3], for i in range()]
. Aber ich fand, wenn a groß ist, kostet es zu viele CPU-Ressourcen, wie könnte ich diesen Engpass lösen?Python Konvertieren Liste [0, 1, 2, 3, 4, 5] zu [0, 1, 2], [1,2,3], [2,3,4]
Antwort
Wenn Ihre Liste die Größe n
hat, haben Sie O (n) solche Listen zu komponieren - es gibt keinen Weg um sie herum.
Eine Sache, die Sie tun können, ist es jedoch träge zu berechnen, auf diese Weise wird die nächste Liste nur berechnet, wenn Sie versuchen, darauf zuzugreifen. Die Verwendung eines Generators für dieses Beispiel ist ziemlich einfach:
def compose_lists(lst):
for i in range(len(lst)-2):
yield lst[i:i+3]
Hättest du nicht einfach '[...]' '' '(...)' 'ändern können, um den Code von der Frage in einen Generator umzuwandeln, anstatt ihn komplett neu zu schreiben? –
Genau das vermisse ich! –
- 1. Warum führt der Sequenzoperator 0-2: -4 zu -2 -1 0 1 2 3 4?
- 2. Konvertieren (0,1,0, 0, 1, 1, 1) zu (0, 0, 0, 1, 0, 1, 2) in R
- 3. wie Muster 5 5 5 5 5 4 4 4 4 3 3 3 2 2 1
- 4. Python Pandas von 0/1 Datenrahmen zu einer itemset Liste
- 5. JavaScript Schleife mit output: 0, 1, 10, 11, 12, 2, 3, 4, 5
- 6. CSS-Knockout-Bindung macht => class =“0 1 2 3 4 5 6 mit KO 2.0
- 7. 1 zu 0-1 Beziehung?
- 8. pdfgrep '\ d {3} - \ d {2} - \ d {4}' vs '[0-9] {3} [-]? [0-9] {2} [-]? [0- 9] {4}‘
- 9. eine Liste `[1, 2, 3]` in einen String '{1, 2, 3}' in Javascript
- 10. Ein effizienterer Weg als: execlp (cmd [0], cmd [0], cmd [1] cmd [2], cmd [3] NULL);
- 11. 0 in [1, 2] == wahr, warum?
- 12. Schleife durch 4 3 2 1 4 3 2 1 ... mit Modul cis
- 13. mit Python, wie 0, 1, 2 für ternäre Variablen geben?
- 14. Prolog mit H = 0 + 1 + 1 statt H = 2
- 15. CSS Animationsschleife ein- und ausblenden 1-2-3-1-2-3-1-2
- 16. 1: 0:
- 17. Rubin warum 0 || 1 0
- 18. Mit IHTMLDocuments 1, 2, 3 & 4
- 19. In csh, warum ist 4 - 3 + 1 == 0?
- 20. Generisches Pythonic-Code zu lösen: 2 ** 2 ** 2 ** 2 ** 0
- 21. Warum ist der Ausgang [0, 1, 2, 3, 4] für diese Funktion auf dem folgenden Array?
- 22. Was kostet $? $ 0 $ 1 $ 2 bedeuten in Shell-Skript?
- 23. Wie 0111 als 0 + 1 + 1 + 1 = 3 in php
- 24. Warum "dict (Runoob = 1, Google = 2, Taobao = 3)" kompiliert während "dict (1 = 1, 2 = 2, 3 = 3)" nicht in Python?
- 25. Warum gibt {1, 2, 3} <{2, 3, 4, 5} Falsch zurück?
- 26. Übersetzen 3 .... 0 in 0 ...... 1, Unity3d (Time.time)
- 27. Das erwähnte Einfügesortierprogramm funktioniert nicht für die Eingabe {5, 3, 4, 2, 1}, aber es funktioniert für {5, 4, 3, 2, 1}. Aber warum?
- 28. Python. Versucht Index [0] == Index [1]
- 29. Warum! (0 || 1 || 0) ist 0?
- 30. Convert V4L2_PIX_FMT_YUYV (YUV 4: 2: 2) zu V4L2_PIX_FMT_YVU420 (YUV 4: 2: 0)
was genau wird Ihre Liste sein? Nur ganze Zahl oder Kombination von String? Für eine optimale Hilfe geben Sie bitte an, welche Listenelemente möglich sind. – Gahan
Ich habe zwei Arten von Listen. Ganzzahlen und Liste der Floats. –
Sie können den Kontext des größeren Problems, das Sie mit diesen Listen lösen möchten, sichern und beschreiben. Vielleicht können wir einen Vorschlag machen, der es nicht erfordert, diese große Datenstruktur aufzubauen. –