Rufen Sie die ersten 10 Ergebnisse aus einer Liste in Python ab

Lesezeit: 2 Minuten

Benutzeravatar von Amyth
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)

Levons Benutzer-Avatar
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

Benutzeravatar von user1409289
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]

1443320cookie-checkRufen Sie die ersten 10 Ergebnisse aus einer Liste in Python ab

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy