Las interconversiones de tipos de datos se han discutido muchas veces y han sido un problema bastante popular de resolver. Este artículo analiza otro problema más de la interconversión del diccionario, en formato de cadena, a un diccionario. Analicemos ciertas formas en que esto se puede hacer.
Convertir diccionario de cadenas en diccionario usando json.loads()
Esta tarea se puede realizar fácilmente utilizando la función incorporada de una gran cantidad de biblioteca json de Python que convierte la cadena de un diccionario válido en formato json, diccionario en Python.
Enfoque paso a paso:
- Importar el ' json 'módulo.
- Inicialice una variable de cadena 'test_string' con un diccionario en formato de cadena.
- Imprima la cadena original usando la función 'print()' y concatenándola con la variable 'test_string' convertida en una cadena usando la función 'str()'.
- Utilice la función 'json.loads()' para convertir la cadena del diccionario en un objeto de diccionario y asígnela a la variable 'res'.
- Imprima el diccionario convertido usando la función 'print()' y concatenándolo con la variable 'res' convertida en una cadena usando la función 'str()'.
Python3
cuantas teclas tienen los teclados
# 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))> |
>
>Producción :
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}> Complejidad del tiempo: O(1) ya que es una llamada de función única a json.loads que toma una cadena como entrada y devuelve un diccionario.
Espacio auxiliar: O(n), donde n es la longitud de la cadena de entrada. Esto se debe a que el diccionario devuelto ocupa un espacio proporcional a la longitud de la cadena de entrada.
Usando ast.literal_eval() para convertir un diccionario de cadenas en un diccionario
El método anterior también se puede utilizar para realizar una conversión similar. Función más segura que la función eval y también se puede utilizar para la interconversión de todos los tipos de datos distintos del diccionario.
pasos :
- El programa importa el módulo ast.
- El programa inicializa una variable de cadena test_string con una representación de cadena de un diccionario: {Nikhil: 1, Akshat: 2, Akash: 3}.
- El programa imprime la cadena original usando la función print() y la función str() para convertir la variable test_string en una cadena: print(La cadena original: + str(test_string)).
- El programa utiliza la función ast.literal_eval() para convertir la representación de cadena del diccionario en un diccionario de Python: res = ast.literal_eval(test_string).
- El programa imprime el diccionario resultante usando la función print() y la función str() para convertir la variable res en una cadena: print(El diccionario convertido: + 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))> |
matemáticas.aleatorio java
>
>Producción :
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}> Complejidad del tiempo: O(n) donde n es el número de caracteres de la cadena del diccionario.
Espacio auxiliar: O(n) donde n es el número de elementos en la cadena del diccionario.
Convertir diccionario de cadenas en diccionario usando eval()
El método anterior también se puede utilizar para realizar una conversión similar. La función eval() analiza el argumento pasado, lo convierte en una expresión de Python y ejecuta la expresión de Python.
Pitón
# 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))> |
>
>
Producción:
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}> Complejidad del tiempo: O(1)
Espacio Auxiliar: O(1)
Convierta un diccionario de cadenas en un diccionario utilizando el método split() y un diccionario de comprensión
Primero, eliminamos las llaves de la cadena usando el método strip(). Luego, dividimos la cadena en una lista de pares clave-valor usando el método split(). Finalmente, utilizamos la comprensión del diccionario para iterar sobre los pares, dividirlos en cadenas de valores y claves separadas y convertir los valores a números enteros antes de agregarlos al diccionario. Se devuelve el diccionario resultante.
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}> |
>
>Producción
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}> Complejidad del tiempo: O (n), donde n es el número de pares clave-valor en el diccionario.
Espacio auxiliar: En)
Convierta un diccionario de cadenas en un diccionario usando la función eval() junto con una función replace()
- Inicialice una cadena que contenga el diccionario en formato de cadena.
- Utilizar el reemplazar() función para reemplazar todas las comillas simples (') en la cadena con comillas dobles ().
- Utilizar el evaluar() función para evaluar la cadena resultante como una expresión de Python, que será un objeto de diccionario.
- Asigne el diccionario resultante a una variable.
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))> |
>
>
algo for bfsProducción
The original string : {'Nikhil' : 1, 'Akshat' : 2, 'Akash' : 3} The converted dictionary : {'Nikhil': 1, 'Akshat': 2, 'Akash': 3}> Complejidad del tiempo: O(n), donde n es la longitud de la cadena de entrada. Esto se debe a que la función reemplazar() tiene una complejidad temporal de O(n).
Espacio auxiliar: O(n), donde n es la longitud de la cadena de entrada.