我有一个名为"dict_str"的变量,它看起来像这样:"a = 15, a2 = 19"(它持续数千个输入)。如果我尝试使用dict函数:
a = 15, a2 = 19
dict(dict_str)
它给出了这个错误:ValueError:字典更新序列元素#0长度为1; 2为必填项但如果我这么做:
dict(a = 15, a2 = 19)
它工作得很好。所以我想知道是否有一种方法可以让它与dict_str变量一起工作
vfwfrxfs1#
这是一个变通方案。
items = [item.split('=') for item in dict_str.split(', ')] my_dict = {} for key, value in items: my_dict[key.strip()] = int(value.strip()) print(my_dict)
输出:
{'a': 15, 'a2': 19}
如果愿意,您甚至可以使用regex。示例:
import re regex = re.compile(r'(\w+) *= *(\d+)') items = regex.findall(dict_str) my_dict = {key: int(value) for key, value in items) print(my_dict)
此正则表达式应生成相同的输出。
xv8emn3q2#
dmap = dict(map(str.strip, array.split("=")) for array in "a = 15, a2 = 19".split(","))
data = "a = 15, a2 = 19" dmap = dict(map(str.strip, array.split("=")) for array in data.split(",")) print(dmap)
data = "a = 15, a2 = 19" dmap = {} for value in data.split(","): array = value.split("=") dmap[array[0].strip()] = int(array[1].strip())
2条答案
按热度按时间vfwfrxfs1#
这是一个变通方案。
输出:
如果愿意,您甚至可以使用regex。
示例:
此正则表达式应生成相同的输出。
xv8emn3q2#
一个内衬:
解压:
更好的方法: