logo

Konvertera String Dictionary till Dictionary Python

Interkonverteringar av datatyper har diskuterats många gånger och har varit ett ganska populärt problem att lösa. Den här artikeln diskuterar ytterligare ett problem med interkonvertering av ordboken, i strängformat till en ordbok. Låt oss diskutera vissa sätt på vilka detta kan göras.

Konvertera String Dictionary till Dictionary med json.loads()

Den här uppgiften kan enkelt utföras med den inbyggda funktionen för massor av json-biblioteket i python som konverterar strängen med giltig ordbok till json-form, ordbok i Python.

Steg-för-steg tillvägagångssätt:



  1. Importera ' json ' modul.
  2. Initiera en strängvariabel 'test_string' med en ordbok i strängformat.
  3. Skriv ut den ursprungliga strängen med funktionen 'print()' och sammanfoga den med variabeln 'test_string' konverterad till en sträng med funktionen 'str()'.
  4. Använd funktionen 'json.loads()' för att konvertera ordbokssträngen till ett ordboksobjekt och tilldela den till variabeln 'res'.
  5. Skriv ut den konverterade ordboken med funktionen 'print()' och sammanfoga den med variabeln 'res' konverterad till en sträng med funktionen 'str()'.

Python3


10 ml är hur mycket



# 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))>

>

>

Utgång:

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

Tidskomplexitet: O(1) eftersom det är ett enda funktionsanrop till json.loads som tar en sträng som indata och returnerar en ordbok.
Extra utrymme: O(n), där n är längden på inmatningssträngen. Detta beror på att den returnerade ordboken tar utrymme proportionellt mot längden på inmatningssträngen.

Använda ast.literal_eval() att konvertera strängordbok till ordbok

Ovanstående metod kan också användas för att utföra en liknande konvertering. Funktion säkrare än eval-funktionen och kan också användas för interkonvertering av alla datatyper förutom ordbok.

steg:

  1. Programmet importerar ast-modulen.
  2. Programmet initierar en strängvariabel test_string med en strängrepresentation av en ordbok: {Nikhil : 1, Akshat : 2, Akash : 3}.
  3. Programmet skriver ut originalsträngen med funktionen print() och funktionen str() för att konvertera test_string-variabeln till en sträng: print(Originalsträngen : + str(test_string)).
  4. Programmet använder funktionen ast.literal_eval() för att konvertera strängrepresentationen av ordboken till en Python-ordbok: res = ast.literal_eval(test_string).
  5. Programmet skriver ut den resulterande ordboken med hjälp av print()-funktionen och str()-funktionen för att konvertera res-variabeln till en sträng: print(Den konverterade ordboken: + 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))>

>

>

Utgång:

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

Tidskomplexitet: O(n) där n är antalet tecken i ordbokssträngen.
Extra utrymme: O(n) där n är antalet element i ordbokssträngen.

Konvertera strängordbok till ordbok med eval()

Ovanstående metod kan också användas för att utföra en liknande konvertering. Funktionen eval() analyserar argumentet som skickas och konverterar det till ett pytonuttryck och kör pytonuttrycket.

Pytonorm


array vs arraylist



# 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))>

>

>

Produktion:

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

Tidskomplexitet: O(1)
Hjälputrymme: O(1)

Konvertera String Dictionary till Dictionary Med hjälp av split()-metoden och en ordboksförståelse

Först tar vi bort de lockiga hängslen från strängen med metoden strip(). Sedan delar vi upp strängen i en lista med nyckel-värdepar med metoden split(). Slutligen använder vi ordboksförståelse för att iterera över paren, dela upp dem i separata nyckel- och värdesträngar och konvertera värdena till heltal innan vi lägger till dem i ordboken. Den resulterande ordboken returneras.

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}>

>

>

Produktion

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

Tidskomplexitet: O(n), där n är antalet nyckel-värdepar i ordboken.
Extra utrymme: På)

Konvertera String Dictionary till Dictionary Använd funktionen eval() tillsammans med en replace() funktion

  • Initiera en sträng som innehåller ordboken i strängformat.
  • Använd byta ut() funktion för att ersätta alla enkla citattecken (‘) i strängen med dubbla citattecken ().
  • Använd eval() funktion för att utvärdera den resulterande strängen som ett Python-uttryck, vilket kommer att vara ett ordboksobjekt.
  • Tilldela den resulterande ordboken till en variabel.

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))>

lägg till sträng java

>

>

Produktion

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

Tidskomplexitet: O(n), där n är längden på inmatningssträngen. Detta beror på att funktionen replace() har en tidskomplexitet på O(n).
Extra utrymme: O(n), där n är längden på inmatningssträngen.