📜  从字符串创建字典的Python程序

📅  最后修改于: 2022-05-13 01:55:26.711000             🧑  作者: Mango

从字符串创建字典的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}