从字符串创建字典的Python程序
Python中的字典是一种非常有用的数据结构,很多时候我们都会看到将字符串转换为字典的问题。
因此,让我们讨论如何解决这个问题。
方法 #1:使用 eval()
如果我们得到一个完全类似于字典对象的字符串输入(如果字符串看起来像Python中的字典),那么我们可以轻松地将其转换为字典使用
Python中的 eval() 。
# 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'])
输出:
{'C': 15, 'B': 14, 'A': 13}
13
15
方法#2:在Python中使用生成器表达式
如果我们得到一个字符串输入不完全类似于字典对象,那么我们可以使用生成器表达式将其转换为字典。
# 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'])
输出:
{'C': '15', 'A': '13', 'B': '14'}
13
15
上面给出的代码不会将整数转换为 int 类型,
如果存在整数键,则只需第 8 行即可
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)
输出:
{'13': 15, '12': 14, '11': 13}