Website-Suche

Python Wo in der Liste


Die where()-Methode in Python wird verwendet, um eine bestimmte Bedingung für jedes Element eines Arrays zu überprüfen und dann einen entsprechenden Wert auszuwählen, der an dem Index dieses Elements platziert wird, je nach dem Ergebnis der Bedingung. Um jedoch die „where()“-Methode auf eine Liste anzuwenden, muss die Liste zuerst in ein Array konvertiert werden.

Die „where()“-Methode ist keine eingebaute Methode der Programmiersprache Python, sondern gehört tatsächlich zum „Numpy“-Paket. Um das Funktionieren der „where()“-Methode zu verstehen, werfen Sie einen Blick auf ihre Syntax:

Syntax der Methode “where()”

Die Syntax der Methode “where()” kann wie folgt demonstriert werden:

np.where(condition, value1 , value2)

In der obigen Syntax:

  • Bedingung , die für jedes Element der Liste innerhalb der where()-Methode überprüft werden soll
  • Wert1: wird platziert, wenn die Bedingung, die in der where()-Methode definiert ist, wahr ergibt.
  • wert2: zu verwenden, wenn die Bedingung in der where()-Methode falsch ergibt

Zusätzliche Informationen

Für die Methode „where()“ sind die folgenden Aspekte wichtig und müssen beachtet werden.

  • Die Werte value1 und value2 sind optionale Parameter. Es müssen jedoch entweder beide bereitgestellt werden oder keiner.
  • Die Parameter value1 und value2 können einen statischen Wert, einen statischen String oder ein Array sein. Wenn diese Werte jedoch ein Array sind, sollten die Form und die Größe des Arrays mit dem Array in der Bedingung übereinstimmen.

Beispiel 1: Elemente abrufen, die der Bedingung entsprechen

In diesem ersten Beispiel werden Sie eine Liste erstellen und nur die Elemente abrufen, die einem bestimmten Kriterium entsprechen. Um dies zu tun, erstellen Sie zunächst eine Liste und verwenden Sie die folgende Zeile:

import numpy as np

numbers = (1,66,2,23,91,14,51,47)

Die Aufgabe besteht darin, nur die Elemente auszuwählen, die einen Wert höher als "50" haben. Dafür wandeln Sie die Liste in ein Array um und verwenden dann die folgende Bedingung in der Methode "where()":

array = np.array(numbers)

result= (np.where(array > 50))

Zuletzt das Ergebnis im Terminal ausgeben:

print(result)

Der vollständige Codeausschnitt für dieses Beispiel lautet:

import numpy as np

numbers = (1,66,2,23,91,14,51,47)

array = np.array(numbers)

result = (np.where(array > 50))

print(result)

Beim Ausführen dieses Codes können Sie sehen, dass die Ausgabe lautet:

Die Ausgabe zeigt die "Index"-Werte des Elements an, die die Bedingungen der "where()"-Methode erfüllen.

  • Index 1=66
  • Index 4=91
  • Index 6=51

Beispiel 2: Bereitstellung beider Fälle für die Bedingung

In diesem Beispiel werden Sie beide Aktionen angeben, die je nach dem durch die Bedingung erzielten Ergebnis ausgeführt werden sollen. Um dies zu demonstrieren, nehmen Sie die folgenden Noten von Schülern in einem bestimmten Fach:

import numpy as np

scores= (52,46,91,33,52,67,51,47)

Danach wenden Sie die Bedingungen an, dass, wenn die Punktzahl des Schülers über 50 liegt, dem Schüler der Status “Bestanden” gewährt wird, andernfalls “Durchgefallen”.

array = np.array(scores)

result =(np.where(array > 50 , "Pass","Fail"))

Danach zeige beide Listen, die Original- und die Ergebnisliste, im Terminal mit den folgenden Codezeilen an:

print("Original List: ", scores)

print("Verdict: ", result)

Der vollständige Codeausschnitt für dieses Beispiel wäre:

import numpy as np

scores = (52,46,91,33,52,67,51,47)

array = np.array(scores)

result =(np.where(array > 50 , "Pass","Fail"))

print("Original List: ", scores)

print("Verdict: ", result)

Das Ausführen dieses Codes wird das folgende Ergebnis im Terminal produzieren:

Beispiel 3: Verwendung von Arrays als Bedingung

In diesem Beispiel führen Sie die Bedingung auf Ihrer Liste aus und wählen basierend auf dieser Bedingung den Wert entweder aus dem Array im zweiten Parameter der where()-Methode oder dem Array im dritten Parameter aus.

Beginnen Sie mit dem Importieren des numpy-Pakets und erstellen Sie dann eine Liste mit den folgenden Zeilen:

import numpy as np

scores = (52,46,91,33,52,67,51,47)

Wenn der Wert größer als 50 ist, nimm den Wert aus dem Array des zweiten Parameters, und wenn er kleiner ist, verwende das Array des dritten Parameters:

array = np.array(scores)

result =(np.where(array > 50 ,

[1,2,3,4,5,6,7,8],

[11,12,13,14,15,16,17,18]))

Und schließlich die Arrays im Terminal ausdrucken:

print("Original List: ", scores)

print("New List: ", result)

Der vollständige Codeausschnitt für dieses Beispiel lautet:

import numpy as np

scores = (52,46,91,33,52,67,51,47)

array = np.array(scores)

result =(np.where(array > 50 ,

[1,2,3,4,5,6,7,8],

[11,12,13,14,15,16,17,18]))

print("Original List: ", scores)

print("New List: ", result)

Dieser Code liefert das folgende Ergebnis im Terminal:

Aus der Ausgabe ist zu erkennen, dass für jedes Element, das größer als 50 ist, der neue Wert weniger als 10 (zweiter Parameter) und für jedes Element, das kleiner als 50 ist, der neue Wert jetzt größer als 10 (dritter Parameter) ist.

Beispiel 4: Ausführen von Operationen basierend auf Bedingungen

In diesem Beispiel nehmen Sie die folgende Liste:

import numpy as np

list= (1,2,3,4,5,6,7,8,9)

Wenn der Artikel gerade ist, nimm ihn so wie er ist, wenn er ungerade ist, multipliziere ihn mit 10 mit:

array = np.array(list)

result =(np.where(array %2 ==0 ,array,array*10)

Und dann das Ergebnis im Terminal ausdrucken:

print("Original List: ", list)

print("New List: ", result)

Der vollständige Codeausschnitt für dieses Beispiel ist der folgende:

import numpy as np

list = (1,2,3,4,5,6,7,8,9)

array = np.array(list)
result =(np.where(array %2 ==0 ,array,array*10)
print("Original List: ", list)
print("New List: ", result)

Das Ausführen des oben genannten Code-Snippets wird das folgende Ergebnis produzieren:

Die Ausgabe bestätigt, dass jedes ungerade Element mit 10 multipliziert wurde.

Fazit

Die "where()"-Methode fungiert als eine Art Filter, der das Element je nach Bedingung filtert, und auf Grundlage dieser Bedingung können Aktionen auf das Element ausgeführt werden. Um die "where()"-Methode zu verwenden, muss der Benutzer die Numpy-Bibliothek importieren, da die "where()"-Methode keine eingebaute Methode von Python ist. Außerdem muss die Liste in ein Numpy-Array umgewandelt werden, bevor die where()-Methode darauf angewendet wird.