Pretvori slovar nizov v slovar Python

O medsebojnih pretvorbah podatkovnih tipov se je velikokrat razpravljalo in je bilo precej priljubljen problem za reševanje. Ta članek obravnava še eno težavo medsebojnega pretvorbe slovarja v nizovnem formatu v slovar. Pogovorimo se o nekaterih načinih, kako je to mogoče storiti.

Pretvori slovar nizov v slovar z uporabo json.loads()

To nalogo je mogoče preprosto izvesti z vgrajeno funkcijo nalaganja json knjižnice pythona, ki pretvori niz veljavnega slovarja v obliko json, slovar v Pythonu.

Pristop po korakih:

  1. Uvozi ' json ' modul.
  2. Inicializirajte nizovno spremenljivko 'test_string' s slovarjem v obliki niza.
  3. Natisnite izvirni niz s funkcijo 'print()' in ga združite s spremenljivko 'test_string', pretvorjeno v niz s funkcijo 'str()'.
  4. S funkcijo 'json.loads()' pretvorite slovarski niz v slovarski objekt in ga dodelite spremenljivki 'res'.
  5. Natisnite pretvorjeni slovar s funkcijo 'print()' in ga združite s spremenljivko 'res', pretvorjeno v niz s funkcijo 'str()'.

Python3




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

Izhod:

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

Časovna zahtevnost: O(1), saj gre za en sam klic funkcije json.loads, ki sprejme niz kot vhod in vrne slovar.
Pomožni prostor: O(n), kjer je n dolžina vhodnega niza. To je zato, ker vrnjeni slovar zavzame prostor, sorazmeren z dolžino vhodnega niza.

Uporaba ast.literal_eval() za pretvorbo nizovnega slovarja v slovar

Zgornjo metodo lahko uporabite tudi za izvedbo podobne pretvorbe. Funkcija je varnejša od funkcije eval in se lahko uporablja tudi za medsebojno pretvorbo vseh tipov podatkov razen slovarja.

koraki:

  1. Program uvozi modul ast.
  2. Program inicializira nizovno spremenljivko test_string z nizovno predstavitvijo slovarja: {Nikhil : 1, Akshat : 2, Akash : 3}.
  3. Program natisne izvirni niz s funkcijo print() in funkcijo str(), da pretvori spremenljivko test_string v niz: print(Izvirni niz : + str(test_string)).
  4. Program uporablja funkcijo ast.literal_eval() za pretvorbo nizovne predstavitve slovarja v slovar Python: res = ast.literal_eval(test_string).
  5. Program natisne dobljeni slovar s funkcijo print() in funkcijo str(), da pretvori spremenljivko res v niz: print(Pretvorjeni slovar : + 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))>

Izhod:

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

Časovna zahtevnost: O(n), kjer je n število znakov v slovarskem nizu.
Pomožni prostor: O(n), kjer je n število elementov v slovarskem nizu.

Pretvori slovar nizov v slovar z uporabo eval()

Zgornjo metodo lahko uporabite tudi za izvedbo podobne pretvorbe. Funkcija eval() razčleni posredovani argument in ga pretvori v izraz python ter zažene izraz python.

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

Izhod:

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

Časovna zapletenost: O(1)
Pomožni prostor: O(1)

Pretvori slovar nizov v slovar z uporabo metode split() in razumevanja slovarja

Najprej odstranimo zavite oklepaje iz niza z uporabo metode strip(). Nato z metodo split() razdelimo niz na seznam parov ključ-vrednost. Nazadnje uporabimo razumevanje slovarja, da ponovimo pare, jih razdelimo v ločene nize ključev in vrednosti ter pretvorimo vrednosti v cela števila, preden jih dodamo v slovar. Nastali slovar je vrnjen.

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

Izhod

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

Časovna zapletenost: O(n), kjer je n število parov ključ-vrednost v slovarju.
Pomožni prostor: O(n)

Pretvorite slovar nizov v slovar z uporabo funkcije eval() skupaj s funkcijo replace().

  • Inicializirajte niz, ki vsebuje slovar v obliki niza.
  • Uporabi zamenjati() funkcijo za zamenjavo vseh enojnih narekovajev (‘) v nizu z dvojnimi narekovaji ().
  • Uporabi eval() funkcijo za ovrednotenje nastalega niza kot izraza Python, ki bo objekt slovarja.
  • Dodelite dobljeni slovar spremenljivki.

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

Izhod

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

Časovna zahtevnost: O(n), kjer je n dolžina vhodnega niza. To je zato, ker ima funkcija replace() časovno zapletenost O(n).
Pomožni prostor: O(n), kjer je n dolžina vhodnega niza.



Morda Vam Bo Všeč