Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich eine neue Liste mit jedem N-ten Element aus einer Originalliste?

Wie erstelle ich eine neue Liste mit jedem N-ten Element aus einer Originalliste?

Mary-Kate Olsen
Freigeben: 2024-10-20 10:56:02
Original
759 Leute haben es durchsucht

How to Generate a New List with Every Nth Item from an Original List?

Erstellen Sie eine Liste mit jedem N-ten Element aus einer Originalliste

Bei der Datenanalyse oder Programmierung ist es oft notwendig, mit einer Teilmenge von zu arbeiten eine Liste. Eine häufige Aufgabe besteht darin, eine neue Liste zu erstellen, die nur jedes N-te Element der ursprünglichen Liste enthält. Wie können wir beispielsweise bei einer gegebenen Liste mit ganzen Zahlen von 0 bis 1000 eine Liste erhalten, die nur das erste und jedes weitere zehnte Element enthält?

Mit einer herkömmlichen for-Schleife können wir diese Aufgabe wie folgt erledigen:

<code class="python">xs = list(range(1001))
new_list = []
for i, x in enumerate(xs):
    if i % 10 == 0:
        new_list.append(x)</code>
Nach dem Login kopieren

Ein prägnanterer und effizienterer Ansatz ist jedoch mit Pythons Slicing verfügbar:

<code class="python">>>> xs = list(range(1001))
>>> new_list = xs[0::10]</code>
Nach dem Login kopieren

In dieser Lösung erstellt der xs[0::10]-Ausdruck eine neue Liste, die umfasst jedes 10. Element ab Index 0. Das Ergebnis ist eine Liste mit [0, 10, 20, 30, ..., 1000], ohne dass Schleifen oder bedingte Prüfungen erforderlich sind.

Diese Methode ist deutlich schneller als der for-Schleifen-Ansatz, was sich beim Umgang mit großen Listen als vorteilhaft erweist. Wie der folgende Zeitvergleich zeigt:

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

$ python -m timeit -s "xs = list(range(1000))" "xs[0::10]"
100000 loops, best of 5: 3.32 usec per loop</code>
Nach dem Login kopieren

Dieser optimierte Ansatz mit Slicing bietet sowohl Einfachheit als auch Leistungsvorteile beim Erstellen neuer Listen mit jedem N-ten Element aus einer ursprünglichen Liste.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine neue Liste mit jedem N-ten Element aus einer Originalliste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage