logo

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


zakoni enakovrednosti



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

mysql ni enako

>

>

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

>

če drugače bash

>

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.