Heim  >  Artikel  >  Backend-Entwicklung  >  So extrahieren Sie jedes N-te Element aus Listen mithilfe von Python Slicing

So extrahieren Sie jedes N-te Element aus Listen mithilfe von Python Slicing

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 11:10:02690Durchsuche

How to Extract Every Nth Element from Lists Using Python Slicing

N-te Elementextraktion aus Listen mit Python

Die Aufgabe besteht darin, jedes nachfolgende N-te Element aus einer bestimmten Liste zu extrahieren. Wenn beispielsweise eine Liste mit ganzen Zahlen [0, 1, 2, 3, ..., 997, 998, 999] gegeben ist, besteht das Ziel darin, eine neue Liste zu erhalten, die das erste und jedes weitere zehnte Element enthält, was zu [0, 10, 20, 30, ..., 990].

Während eine for-Schleife mit Modulprüfung ein einfacher Ansatz ist, gibt es eine präzisere und effizientere Lösung mit dem Slicing-Operator von Python.

<code class="python">xs = list(range(1000))
new_list = xs[0::10]</code>

Diese Zeile erledigt die Aufgabe in einer einzigen Codezeile. Die Syntax xs[0::10] ist ein Slice-Ausdruck, wobei:

  • 0 den Startindex (einschließlich) angibt.
  • ::10 ist ein Schritt, der angibt, dass er ausgeführt werden soll jedes 10. Element.

Die resultierende neue_Liste enthält die gewünschten Elemente, [0, 10, 20, 30, ..., 990].

Leistungsvergleich

Benchmarking zeigt, dass dieser Slicing-Ansatz deutlich schneller ist als die for-Schleifenlösung:

$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]"
517 loops, best of 5: 471.776 usec per loop

$ python -m timeit -s "xs = list(range(1000))" "xs[0::10]"
100000 loops, best of 5: 4.03 usec per loop

Dies zeigt die Effizienz und Einfachheit des Slicing-Ansatzes zum Extrahieren jedes N-ten Elements aus einer Liste in Python.

Das obige ist der detaillierte Inhalt vonSo extrahieren Sie jedes N-te Element aus Listen mithilfe von Python Slicing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn