Python program to create a dictionary from a string
Dictionary in python is a very useful data structure and at many times we see problems regarding converting a string to a dictionary.
So, let us discuss how we can tackle this problem.
Method # 1: Using eval()
If we get a string input which completely resembles a dictionary object(if the string looks like dictionary as in python) then we can easily convert it to dictionary using eval() in Python.
# Python3 code to convert # a string to a dictionary # Initializing String string = "{'A':13, 'B':14, 'C':15}" # eval() convert string to dictionary Dict = eval (string) print ( Dict ) print ( Dict [ 'A' ]) print ( Dict [ 'C' ]) |
Output:
{'C': 15, 'B': 14, 'A': 13} 13 15
Method # 2: Using generator expressions in python
If we get a string input does not completely resemble a dictionary object then we can use generator expressions to convert it to a dictionary.
# Python3 code to convert # a string to a dictionary # Initializing String string = "A - 13, B - 14, C - 15" # Converting string to dictionary Dict = dict ((x.strip(), y.strip()) for x, y in (element.split( '-' ) for element in string.split( ', ' ))) print ( Dict ) print ( Dict [ 'A' ]) print ( Dict [ 'C' ]) |
Output:
{'C': '15', 'A': '13', 'B': '14'} 13 15
The code given above does not convert integers to an int type,
if integers keys are there then just line 8 would work
string = "11 - 13, 12 - 14, 13 - 15" Dict = dict ((x.strip(), int (y.strip())) for x, y in (element.split( '-' ) for element in string.split( ', ' ))) print ( Dict ) |
Output:
{'13': 15, '12': 14, '11': 13}
Last Updated on November 1, 2021 by admin