logo

Python | Holen Sie sich den Schlüssel aus dem Wert im Wörterbuch

Sehen wir uns an, wie man den Schlüssel nach Wert im Python-Wörterbuch erhält.

Beispiel: Einzeiler-Code



Python3

np.histogramm








# creating a new dictionary> my_dict>=>{>'Java'>:>100>,>'Python'>:>112>,>'C'>:>11>}> # one-liner> print>(>'One line Code Key value: '>,>list>(my_dict.keys())> >[>list>(my_dict.values()).index(>100>)])>

>

>

Ausgabe:

Java>

Extrahieren Sie den Schlüssel mithilfe des Werts aus dem Python-Wörterbuch

Methode 1: Ermitteln Sie den Schlüssel anhand des Werts mithilfe des Listenverständnisses

Ein Listenverständnis besteht aus Klammern, die den Ausdruck enthalten, der für jedes Element zusammen mit der for-Schleife ausgeführt wird, um jedes Element in der Python-Liste zu durchlaufen und den Schlüssel aus einem Wert in zu erhalten Wörterbuch .

Python3




dic>=>{>'geeks'>:>'A'>,>'for'>:>'B'>,>'geeks'>:>'C'>}> value>=> {i>for> i>in> dic>if> dic[i]>=>=>'B'>}> print>(>'key by value:'>,value)>

>

>

Ausgabe:

key by value: {'for'}>

Zeitkomplexität: AN)
Hilfsraum: O(1)

Methode 2: Holen Sie sich den Schlüssel nach Wert mithilfe einer list.index()

Der index()-Methode gibt den Index des entsprechenden Werts in einer Liste zurück. Der hier verwendete Ansatz besteht darin, zwei separate Listen mit Schlüsseln und Werten zu finden. Dann holen Sie sich den Schlüssel mit dem Position des Wertes in der val_list. Da der Schlüssel an jeder Position N in key_list einen entsprechenden Wert an Position N in val_list hat.

Python3

die Zahlen des Alphabets




# creating a new dictionary> my_dict>=>{>'java'>:>100>,>'python'>:>112>,>'c'>:>11>}> # list out keys and values separately> key_list>=> list>(my_dict.keys())> val_list>=> list>(my_dict.values())> # print key with val 100> position>=> val_list.index(>100>)> print>(key_list[position])>

>

>

Ausgabe:

java>

Zeitkomplexität: O(1)
Nebenraum: O(1)

Methode 3: Holen Sie sich den Schlüssel nach Wert mit dict.item()

Wir können den Schlüssel auch von einem Wert abrufen, indem wir alle Werte mit dict.item() abgleichen und dann den entsprechenden Schlüssel für den angegebenen Wert ausgeben.

Python3




# function to return key for any value> def> get_key(val):> > >for> key, value>in> my_dict.items():> >if> val>=>=> value:> >return> key> >return> 'key doesn't exist'> # Driver Code> my_dict>=> {>'Java'>:>100>,>'Python'>:>112>,>'C'>:>11>}> print>(get_key(>100>))> print>(get_key(>11>))>

>

Liste in Java

>

Ausgabe

Java C>

Zeitkomplexität: O(n), wobei n die Anzahl der Schlüssel-Wert-Paare im Wörterbuch ist.
Nebenraum: O(1), da der von der Funktion verwendete Speicherplatz nicht von der Größe des Eingabewörterbuchs abhängt.

Methode 4: Verwendung von Lambda und filter()

Hier ist ein Beispiel für die Verwendung der Funktion filter(), um den Schlüssel abzurufen, der einem Wert in einem Wörterbuch entspricht:

Python3




my_dict>=> {>'Java'>:>100>,>'Python'>:>112>,>'C'>:>11>}> # Get the key corresponding to value 100> key>=> list>(>filter>(>lambda> x: my_dict[x]>=>=> 100>, my_dict))[>0>]> print>(key)> #This code is contributed by Edula Vinay Kumar Reddy>

>

>

Ausgabe

Java>

In diesem Beispiel wird die Funktion filter() verwendet, um eine Liste von Schlüsseln aus my_dict zu erstellen, deren Wert gleich 100 ist. Die resultierende Liste wird dann an Position 0 indiziert, um das erste Element zu erhalten, das den Schlüssel darstellt, der dem Wert entspricht 100.

Zeitkomplexität: O(n) , da die Funktion filter() das gesamte Wörterbuch durchlaufen muss, um die Liste der Schlüssel zu erstellen.
Hilfsraum ist O(n) , da die von filter() erstellte Liste der Schlüssel eine Größe hat, die der Anzahl der Elemente im Wörterbuch entspricht.

METHODE 5: Mit der Items-Methode

Dieser Code findet den Schlüssel eines bestimmten Werts in einem Wörterbuch, indem er ein Listenverständnis verwendet, um die Elemente im Wörterbuch zu durchlaufen und zu prüfen, ob der Wert mit dem angegebenen Wert übereinstimmt. Wenn ein Schlüssel gefunden wird, wird er einer Liste hinzugefügt und das erste Element der Liste wird als Schlüssel für den angegebenen Wert ausgegeben. Wenn der Wert nicht im Wörterbuch gefunden wird, wird eine Meldung ausgegeben, dass er nicht gefunden wurde.

Schritte:

  1. Verwenden Sie die items-Methode des Wörterbuchs, um jedes Schlüssel-Wert-Paar in my_dict zu durchlaufen.
  2. Überprüfen Sie, ob der mit dem aktuellen Schlüssel verknüpfte Wert mit dem angegebenen Wert übereinstimmt.
  3. Wenn es gleich ist, wird der aktuelle Schlüssel an eine Liste von Schlüsseln angehängt.
  4. Wenn die Schleife abgeschlossen wird, ohne dass ein passender Wert gefunden wird, wird eine Meldung ausgegeben, die besagt, dass der Wert nicht gefunden wurde.
  5. Wenn ein passender Schlüssel gefunden wurde, drucken Sie den ersten Schlüssel in der Liste aus.

Python3




# input list> my_dict>=> {>'Java'>:>100>,>'Python'>:>112>,>'C'>:>11>}> value>=> 112> key_list>=> [key>for> key, val>in> my_dict.items()>if> val>=>=> value]> if> len>(key_list)>>0>:> >print>(>'The key for the value'>, value,>'is'>, key_list[>0>])> else>:> >print>(>'Value not found in dictionary'>)>

>

>

Ausgabe

The key for the value 112 is Python>

Zeitkomplexität: O(N), Dabei ist n die Anzahl der Schlüssel-Wert-Paare im Wörterbuch.
Hilfsraum: O(K) , wobei k die Anzahl der Schlüssel ist, die mit dem angegebenen Wert übereinstimmen.

METHODE 6: Verwenden des re-Moduls

Das Programm verwendet das re-Modul in Python, um den Schlüssel in einem Wörterbuch zu finden, der einem bestimmten Wert entspricht. Es erstellt ein reguläres Ausdrucksmuster, das dem von Wortgrenzen umgebenen Wert entspricht, verwendet dann die Funktion next(), um die Elemente im Wörterbuch zu durchlaufen und nach einem Wert zu suchen, der dem Muster entspricht. Wenn eine Übereinstimmung gefunden wird, gibt das Programm den entsprechenden Schlüssel zurück.

ALGORITHMUS:

  1. Erstellen Sie ein reguläres Ausdrucksmuster, das dem gesuchten Wert entspricht und von Wortgrenzen umgeben ist.
  2. Verwenden Sie die Funktion next(), um die Elemente im Wörterbuch zu durchlaufen und nach einem Wert zu suchen, der dem Muster entspricht.
  3. Wenn eine Übereinstimmung gefunden wird, geben Sie den entsprechenden Schlüssel zurück. Andernfalls geben Sie None zurück.

Python3




import> re> # Given input> my_dict>=> {>'Java'>:>100>,>'Python'>:>112>,>'C'>:>11>}> value>=> 100> # Program code> pattern>=> re.>compile>(r>''> +> str>(value)>+> r>''>)> key>=> next>((k>for> k, v>in> my_dict.items()>if> pattern.search(>str>(v))),>None>)> print>(key)>

>

was ist awt

>

Ausgabe

Java>

Zeitkomplexität: O(N), Das Erstellen des regulären Ausdrucksmusters dauert O(1) Zeit. Die Suche nach einem Wert, der dem Muster in jedem Wörterbuchelement entspricht, dauert im schlimmsten Fall O(n) Zeit, wobei n die Anzahl der Elemente im Wörterbuch ist. Die Funktion next() und die if-Anweisung benötigen jeweils O(1) Zeit. Daher beträgt die Gesamtzeitkomplexität des Programms O(n).

Hilfsraum: O(1), Das reguläre Ausdrucksmuster und die Schlüsselvariable benötigen jeweils O(1) Platz. Die Mustervariable und der Generatorausdruck in der Funktion next() benötigen beide O(1)-Speicherplatz. Die im Generatorausdruck verwendeten k- und v-Variablen benötigen keinen zusätzlichen Speicherplatz, da sie als Teil der Iteration erstellt werden. Daher beträgt die Gesamtkomplexität des Programms O(1).