Der Aufführen entspricht Arrays in anderen Sprachen, hat aber den zusätzlichen Vorteil, dass es eine dynamische Größe hat.
In Python , die Liste ist eine Art Container in Datenstrukturen, der zum gleichzeitigen Speichern mehrerer Daten verwendet wird. nicht wie Sets , Listen in Python sind geordnet und haben eine bestimmte Anzahl. In diesem Artikel erfahren Sie, wie Sie in Python über eine Liste iterieren und auch eine Python-Schleife durch eine Liste von Zeichenfolgen durchführen.
Python iteriert über eine Liste
Sehen wir uns die verschiedenen Möglichkeiten zum Durchlaufen einer Liste in Python und den Leistungsvergleich zwischen ihnen an.
- Benutzen for-Schleife
- Verwendung von for-Schleife und Reichweite()
- Verwendung einer while-Schleife
- Benutzen Listenverständnis
- Benutzen aufzählen() Methode
- Verwendung der Iter-Funktion und das nächste Funktion
- Verwendung der map()-Funktion
- Verwenden der Funktion zip()
- Benutzen NumPy Modul
Mit der For-Schleife eine Liste durchlaufen
Wir können eine Liste in Python mit einer einfachen Iteration durchlaufen For-Schleife .
Python3
# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using for loop> for> i>in> list>:> >print>(i)> |
>
>Ausgabe
1 3 5 7 9>
Zeitkomplexität: O(n) – wobei n die Anzahl der Elemente in der Liste ist.
Nebenraum: O(1) – da wir keinen zusätzlichen Platz verbrauchen.
Durchlaufen Sie eine Liste mit f oder Schleife und Bereich()
Für den Fall, dass wir die traditionelle for-Schleife verwenden möchten, die von Nummer x zu Nummer y iteriert.
Python3
# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # getting length of list> length>=> len>(>list>)> > # Iterating the index> # same as 'for i in range(len(list))'> for> i>in> range>(length):> >print>(>list>[i])> |
>
>Ausgabe
1 3 5 7 9>
Zeitkomplexität: O(n), wobei n die Länge der Eingabeliste ist.
Nebenraum: O(1), was ein konstanter Raum ist
Durchlaufen Sie eine Liste in Python mit eine While-Schleife
Wir können auch mit a über eine Python-Liste iterieren while-Schleife .
Python3
# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Getting length of list> i>=> 0> > # Iterating using while loop> while> i <>len>(>list>):> >print>(>list>[i])> >i>+>=> 1> |
>
>Ausgabe
1 3 5 7 9>
Zeitkomplexität: O(n) wobei n die Länge der Liste ist.
Nebenraum: O(1), da nur eine konstante Menge an zusätzlichem Platz für die Variablen i und Länge verwendet wird.
Durchlaufen Sie eine Liste mit Listenverständnis
Wir können benutzen Listenverständnis (möglicherweise der konkreteste Weg), eine Liste in Python zu durchlaufen.
Python3
# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using list comprehension> [>print>(i)>for> i>in> list>]> |
>
>Ausgabe
1 3 5 7 9>
Mit enumerate() eine Liste in Python durchlaufen
Wenn wir die Liste in eine iterierbare Liste von Tupeln umwandeln möchten (oder den Index basierend auf einer Bedingungsprüfung erhalten möchten, z. B. bei der linearen Suche müssen Sie möglicherweise den Index des minimalen Elements speichern), können Sie Folgendes verwenden enumerate()-Funktion .
Python3
# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using enumerate()> for> i, val>in> enumerate>(>list>):> >print> (i,>','>,val)> |
>
Formatieren Sie das Datum in Java
>Ausgabe
0 , 1 1 , 3 2 , 5 3 , 7 4 , 9>
Notiz: Sogar Methode 2 kann verwendet werden, um den Index zu finden, Methode 1 jedoch nicht (es sei denn, bei jeder Iteration wird eine zusätzliche Variable erhöht), und Methode 5 liefert eine prägnante Darstellung dieser Indizierung.
Durchlaufen Sie eine Liste in Python mit der Funktion iter und der Funktion next
Hier ist ein zusätzlicher Ansatz unter Verwendung der Funktion it und der Funktion next:
Python3
# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> # Create an iterator object using the iter function> iterator>=> iter>(>list>)> # Use the next function to retrieve the elements of the iterator> try>:> >while> True>:> >element>=> next>(iterator)> >print>(element)> except> StopIteration:> >pass> |
>
>Ausgabe
1 3 5 7 9>
Zeitkomplexität: An)
Nebenraum: O(1)
Mit der Funktion „map()“ über eine Liste in Python iterieren
Benutzen Sie die Karte() Funktion, um eine Funktion auf jedes Element einer Liste anzuwenden.
Python3
# Define a function to print each element> def> print_element(element):> >print>(element)> # Create a list> my_list>=> [>1>,>3>,>5>,>7>,>9>]> # Use map() to apply the print_element() function to each element of the list> result>=> map>(print_element, my_list)> # Since map() returns an iterator, we need to consume> # the iterator in order to see the output> for> _>in> result:> >pass> |
>
>Ausgabe
1 3 5 7 9>
Zeitkomplexität: O(n), wobei n die Länge der Liste ist.
Nebenraum: O(1)
Python iteriert über mehrere Listen mit der Funktion zip()
In diesem Beispiel wird die Funktion zip() verwendet, um gleichzeitig Elemente aus zwei Listen, list1 und list2, zu durchlaufen und entsprechende Elemente in Tupeln für den anschließenden Druck zusammenzufassen.
Python3
list1>=> [>1>,>2>,>3>]> list2>=> [>'p'>,>'q'>,>'r'>]> # Using zip() to iterate over multiple lists simultaneously> for> i1, i2>in> zip>(list1, list2):> >print>(f>'{i1} ->{i2}'>)> |
>
>Ausgabe
1 ->p 2 -> q 3 -> r>
Mit NumPy über eine Liste in Python iterieren
Für sehr große n-dimensionale Listen (z. B. ein Bildarray) ist es manchmal besser, eine externe Bibliothek zu verwenden, z Numpy . Wir können np verwenden. enumerate(), um das Verhalten der Aufzählung nachzuahmen. Die zusätzliche Leistung von NumPy ergibt sich aus der Tatsache, dass wir sogar die Art und Weise steuern können, wie die Elemente aufgerufen werden (z. B. Fortran-Reihenfolge statt C-Reihenfolge :)), aber die einzige Einschränkung besteht darin, dass der np.nditer das Array als schreibgeschützt behandelt Standard, daher müssen zusätzliche Flags wie op_flags=['readwrite'] übergeben werden, damit Elemente geändert werden können.
Python3
import> numpy as geek> # creating an array using> # arrange method> a>=> geek.arange(>9>)> # shape array with 3 rows> # and 4 columns> a>=> a.reshape(>3>,>3>)> # iterating an array> for> x>in> geek.nditer(a):> >print>(x)> |
>
>
Ausgabe:
0 1 2 3 4 5 6 7 8>
Zeitkomplexität: An)
Nebenraum: O(1)