📅  最后修改于: 2020-07-31 11:06:09             🧑  作者: Mango
关于数据类型之间的相互转换的另一个问题是列表字符串到键和值的字典的转换。在我们需要将大量字符串数据转换为字典以在Machine Learning域中进行预处理的地方,可能会发生此特定问题。让我们讨论完成此任务的某些方法。
方法1:使用字典理解+split()
字典理解可用于构建字典,并且split函数可用于在列表中执行必要的拆分,以获取字典的有效键和值对。
# Python3代码演示使用字典推导+ split()将列表字符串转换为字典
# 初始化字符串
test_string = '[Nikhil:1, Akshat:2, Akash:3]'
# 打印原始字符串
print("原始字符串 : " + str(test_string))
# 使用字典推导+ split()将列表字符串转换为字典
res = {sub.split(":")[0]: sub.split(":")[1] for sub in test_string[1:-1].split(", ")}
# 打印结果
print("提取后的字典是 : " + str(res))
输出:
原始字符串 : [Nikhil:1, Akshat:2, Akash:3]
提取后的字典是 : {'Nikhil': '1', 'Akash': '3', 'Akshat': '2'}
方法2:使用eval() + replace()
此特定任务也可以使用以上两个功能(eval和replace功能)的组合来执行。在这种方法中,eval函数的执行类似于字典理解,构造字典,而replace函数执行必要的替换。当键和值必须转换为整数时,使用此功能。
# Python3代码演示使用eval()+ replace()将列表字符串转换为字典
# 初始化字符串
test_string = '[120:1, 190:2, 140:3]'
# 打印原始字符串
print("原始字符串 : " + str(test_string))
# 使用eval()+ replace()将列表字符串转换为字典
res = eval(test_string.replace("[", "{").replace("]", "}"))
# 打印结果
print("提取后的字典是 : " + str(res))
输出:
原始字符串 : [120:1, 190:2, 140:3]
提取后的字典是 : {120: 1, 140: 3, 190: 2}