Gibt es eine Möglichkeit, die ersten 10 Ergebnisse aus einer Liste abzurufen? So etwas vielleicht?
list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
list.fetch(10)
Ein Mythos
Gibt es eine Möglichkeit, die ersten 10 Ergebnisse aus einer Liste abzurufen? So etwas vielleicht?
list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
list.fetch(10)
Levon
list[:10]
gibt Ihnen die ersten 10 Elemente dieser Liste mit Slicing.
Beachten Sie jedoch, dass es am besten ist nicht benutzen list
als Variablenbezeichner, wie er bereits von Python verwendet wird: Liste()
Weitere Informationen zu dieser Art von Operation finden Sie hier Tutorial zu Listen hilfreich und dieser Link: Slicing verstehen
Beachten Sie, dass dadurch eine Kopie der ersten 10 Elemente erstellt wird. Abhängig von Ihren Anforderungen bevorzugen Sie möglicherweise faules, nicht kopierendes Slicing mit itertools.islice.
– georg
5. Juni 2012 um 12:34 Uhr
@thg435 — Dies erstellt keine Kopie der Elemente in der Liste, sondern nur einen neuen Verweis darauf. Es erstellt jedoch eine neue Liste …
– Mgilson
5. Juni 2012 um 12:49 Uhr
@mgilson: es kommt darauf an, was du unter “element” verstehst. Python-Container enthalten immer Zeiger auf Objekte, wodurch 10 neue Zeiger (+ ein neues Listenobjekt) erstellt werden.
– georg
5. Juni 2012 um 12:52 Uhr
@thg435 – Python hat keine Zeiger. (Wenn Sie Zeiger wollen, verwenden Sie C 😉 Python hat Referenzen. Der Punkt hier ist, dass Sie keine neuen Objekte erstellen, sondern nur neue Verweise auf sie … Wir sagen dasselbe, aber die Art und Weise, wie Ihre ursprüngliche Aussage geschrieben wurde, war irreführend (zumindest für mich), also dachte ich, ich würde es tun klären.
– Mgilson
5. Juni 2012 um 12:58 Uhr
@mgilson: einverstanden, ich hätte besser schreiben sollen “erstellt eine Kopie dieses Teils der Liste”.
– georg
5. Juni 2012 um 13:01 Uhr
Benutzer1409289
Überprüfen Sie dies
list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
list[0:10]
Ausgänge:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
explizit vs implizit: Verwenden Sie explizit, dieses Slicing entspricht dem Python-Zen-Code! 🙂 klarer.
– Rakibul Haq
25. April 2019 um 5:22 Uhr
Um es klar zu sagen, die 0
ist hier nicht erforderlich, es ist impliziert. Ich denke, das sagt “von 0 bis 10” während list[:10]
würde “bis zu 10” bedeuten, was einfacher ist.
– wjandrea
13. Februar um 19:34 Uhr
Der itertools Modul hat viele tolle Sachen drin. Wenn also ein Standard-Slice (wie von Levon verwendet) nicht das tut, was Sie wollen, dann versuchen Sie es islice
Funktion:
from itertools import islice
l = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
iterator = islice(l, 10)
for item in iterator:
print item
list(islice(map((lambda x: x**2 + 1),count()),10)) ist ein Beispiel, bei dem ein normales Slice nicht funktioniert.
– Nathan Chappell
21. Juli 2019 um 10:09 Uhr
Verwenden Sie den Slicing-Operator:
list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
list[:10]