📌  相关文章
📜  Python|将列表字符串转换为字典

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

Python|将列表字符串转换为字典

关于数据类型之间的相互转换的另一个问题是将列表字符串转换为键和值的字典。这个特殊问题可能发生在我们需要将大量字符串数据转换为字典以在机器学习领域进行预处理的地方。让我们讨论一下可以完成此任务的某些方法。

方法 #1:使用字典理解 + split()
字典推导可用于构建字典,而拆分函数可用于在列表中执行必要的拆分,以获取字典的有效键和值对。

# Python3 code to demonstrate
# Converting list string to dictionary 
# Using dictionary comprehsion + split()
  
# initializing string
test_string = '[Nikhil:1, Akshat:2, Akash:3]'
  
# printing original string
print("The original string : " + str(test_string))
  
# using dictionary comprehsion + split()
# Converting list string to dictionary 
res = {sub.split(":")[0]: sub.split(":")[1] for sub in test_string[1:-1].split(", ")}
  
# print result
print("The dictionary after extraction is : " + str(res))
输出 :
The original string : [Nikhil:1, Akshat:2, Akash:3]
The dictionary after extraction is : {'Nikhil': '1', 'Akash': '3', 'Akshat': '2'}

方法 #2:使用eval() + replace()
也可以使用上述两个函数(评估和替换函数)的组合来执行此特定任务。在这种方法中,eval函数执行类似于字典理解,构造字典和替换函数执行必要的替换。当键和值必须转换为整数时使用此函数。

# Python3 code to demonstrate
# Converting list string to dictionary 
# Using eval() + replace()
  
# initializing string
test_string = '[120:1, 190:2, 140:3]'
  
# printing original string
print("The original string : " + str(test_string))
  
# using eval() + replace()
# Converting list string to dictionary 
res = eval(test_string.replace("[", "{").replace("]", "}"))
  
# print result
print("The dictionary after extraction is : " + str(res))
输出 :
The original string : [120:1, 190:2, 140:3]
The dictionary after extraction is : {120: 1, 140: 3, 190: 2}