logo

Konvertieren Sie das String-Wörterbuch in das Python-Wörterbuch

Interkonvertierungen von Datentypen wurden schon oft diskutiert und waren ein recht beliebtes Problem, das es zu lösen galt. In diesem Artikel wird ein weiteres Problem der gegenseitigen Konvertierung des Wörterbuchs vom String-Format in ein Wörterbuch erörtert. Lassen Sie uns bestimmte Möglichkeiten besprechen, wie dies erreicht werden kann.

Konvertieren Sie ein String-Wörterbuch mit json.loads() in ein Wörterbuch

Diese Aufgabe kann einfach mithilfe der integrierten Funktion „loads of json“ der Python-Bibliothek ausgeführt werden, die die Zeichenfolge eines gültigen Wörterbuchs in die JSON-Form, ein Wörterbuch in Python, konvertiert.

Schritt-für-Schritt-Ansatz:



  1. Importieren Sie die „ json ' Modul.
  2. Initialisieren Sie eine String-Variable „test_string“ mit einem Wörterbuch im String-Format.
  3. Drucken Sie die ursprüngliche Zeichenfolge mit der Funktion „print()“ aus und verketten Sie sie mit der Variablen „test_string“, die mithilfe der Funktion „str()“ in eine Zeichenfolge konvertiert wird.
  4. Verwenden Sie die Funktion „json.loads()“, um die Wörterbuchzeichenfolge in ein Wörterbuchobjekt umzuwandeln und es der Variablen „res“ zuzuweisen.
  5. Drucken Sie das konvertierte Wörterbuch mit der Funktion „print()“ aus und verketten Sie es mit der Variablen „res“, die mit der Funktion „str()“ in einen String konvertiert wurde.

Python3


preity zinta



# Python3 code to demonstrate> # convert dictionary string to dictionary> # using json.loads()> import> json> # initializing string> test_string>=> '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # using json.loads()> # convert dictionary string to dictionary> res>=> json.loads(test_string)> # print result> print>(>'The converted dictionary : '> +> str>(res))>

>

>

Ausgabe :

The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}>

Zeitkomplexität: O(1), da es sich um einen einzelnen Funktionsaufruf von json.loads handelt, der eine Zeichenfolge als Eingabe akzeptiert und ein Wörterbuch zurückgibt.
Nebenraum: O(n), wobei n die Länge der Eingabezeichenfolge ist. Dies liegt daran, dass das zurückgegebene Wörterbuch proportional zur Länge der Eingabezeichenfolge Platz beansprucht.

Verwendung von ast.literal_eval() zum Konvertieren eines String-Wörterbuchs in ein Wörterbuch

Die obige Methode kann auch verwendet werden, um eine ähnliche Konvertierung durchzuführen. Funktion ist sicherer als die Auswertungsfunktion und kann auch für die gegenseitige Konvertierung aller Datentypen außer dem Wörterbuch verwendet werden.

Schritte :

  1. Das Programm importiert das ast-Modul.
  2. Das Programm initialisiert eine String-Variable test_string mit einer String-Darstellung eines Wörterbuchs: {Nikhil: 1, Akshat: 2, Akash: 3}.
  3. Das Programm druckt die ursprüngliche Zeichenfolge mithilfe der Funktion print() und der Funktion str() aus, um die Variable test_string in eine Zeichenfolge umzuwandeln: print(Die ursprüngliche Zeichenfolge: + str(test_string)).
  4. Das Programm verwendet die Funktion ast.literal_eval(), um die String-Darstellung des Wörterbuchs in ein Python-Wörterbuch umzuwandeln: res = ast.literal_eval(test_string).
  5. Das Programm druckt das resultierende Wörterbuch mithilfe der Funktion print() und der Funktion str() aus, um die res-Variable in eine Zeichenfolge umzuwandeln: print(Das konvertierte Wörterbuch : + str(res)).

Python3




# Python3 code to demonstrate> # convert dictionary string to dictionary> # using ast.literal_eval()> import> ast> # initializing string> test_string>=> '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # using ast.literal_eval()> # convert dictionary string to dictionary> res>=> ast.literal_eval(test_string)> # print result> print>(>'The converted dictionary : '> +> str>(res))>

>

>

Ausgabe :

The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}>

Zeitkomplexität: O(n) wobei n die Anzahl der Zeichen in der Wörterbuchzeichenfolge ist.
Nebenraum: O(n) wobei n die Anzahl der Elemente in der Wörterbuchzeichenfolge ist.

Konvertieren Sie ein String-Wörterbuch mit eval() in ein Wörterbuch

Die obige Methode kann auch verwendet werden, um eine ähnliche Konvertierung durchzuführen. Die Funktion eval() analysiert das übergebene Argument, konvertiert es in einen Python-Ausdruck und führt den Python-Ausdruck aus.

String in ganze Zahlen umwandeln

Python




# Python3 code to demonstrate> # convert dictionary string to dictionary> # using eval()> # initializing string> test_string>=> '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # using eval()> # convert dictionary string to dictionary> res>=> eval>(test_string)> # print result> print>(>'The converted dictionary : '> +> str>(res))>

>

>

Ausgabe:

The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}>

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

Konvertieren Sie ein String-Wörterbuch in ein Wörterbuch mithilfe der Methode split() und eines Wörterbuchverständnisses

Zuerst entfernen wir die geschweiften Klammern mit der Methode „strip()“ aus der Zeichenfolge. Anschließend teilen wir die Zeichenfolge mit der Methode split() in eine Liste von Schlüssel-Wert-Paaren auf. Schließlich verwenden wir das Wörterbuchverständnis, um die Paare zu durchlaufen, sie in separate Schlüssel- und Wertzeichenfolgen aufzuteilen und die Werte in Ganzzahlen umzuwandeln, bevor wir sie dem Wörterbuch hinzufügen. Das resultierende Wörterbuch wird zurückgegeben.

Python3




def> str_to_dict(string):> ># remove the curly braces from the string> >string>=> string.strip(>'{}'>)> ># split the string into key-value pairs> >pairs>=> string.split(>', '>)> ># use a dictionary comprehension to create> ># the dictionary, converting the values to> ># integers and removing the quotes from the keys> >return> {key[>1>:>->2>]:>int>(value)>for> key, value>in> (pair.split(>': '>)>for> pair>in> pairs)}> # test the function> test_string>=> '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> print>(>'The original string : '> +> str>(test_string))> print>(>'The converted dictionary : '> +> str>(> >str_to_dict(test_string)))># The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}> # The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}>

>

>

Ausgabe

The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}>

Zeitkomplexität: O(n), wobei n die Anzahl der Schlüssel-Wert-Paare im Wörterbuch ist.
Nebenraum: An)

Java-Utility-Datum

Konvertieren Sie ein String-Wörterbuch in ein Wörterbuch, indem Sie die Funktion eval() zusammen mit einer Funktion replace() verwenden

  • Initialisieren Sie eine Zeichenfolge, die das Wörterbuch im Zeichenfolgenformat enthält.
  • Benutzen Sie die ersetzen() Funktion zum Ersetzen aller einfachen Anführungszeichen (‘) in der Zeichenfolge durch doppelte Anführungszeichen ().
  • Benutzen Sie die eval() Funktion, um die resultierende Zeichenfolge als Python-Ausdruck auszuwerten, der ein Wörterbuchobjekt sein wird.
  • Weisen Sie das resultierende Wörterbuch einer Variablen zu.

Python3




# Python3 code to demonstrate> # convert dictionary string to dictionary> # using eval() and replace()> # initializing string> test_string>=> '{'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3}'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # using eval() and replace()> # convert dictionary string to dictionary> res>=> eval>(test_string.replace(>'''>,>'''>))> # print result> print>(>'The converted dictionary : '> +> str>(res))>

>

>

Ausgabe

The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}>

Zeitkomplexität: O(n), wobei n die Länge der Eingabezeichenfolge ist. Dies liegt daran, dass die Funktion replace() eine zeitliche Komplexität von O(n) hat.
Nebenraum: O(n), wobei n die Länge der Eingabezeichenfolge ist.