我正在尝试使用这样的字符串构建字典:
paramString = (dtoxe_n_18_cdmos=0.0000e+000, dxl_n_18_cdmos=0.0000e+000, du0_n_18_cdmos=0.0000e+000, dvth0_n_18_cdmos=0.0000e+000)
我用过
paramDict = dict(paramString)
但它返回错误" ValueError:字典更新序列元素#0的长度为1; 2是必需的" 或许关键词中的下划线是一个问题吗?因为据我所知,根据this,它应该是正确的符号。
感谢男生和女生们!
答案 0 :(得分:4)
您可以使用以下词典理解:
>>> s="dtoxe_n_18_cdmos=0.0000e+000, dxl_n_18_cdmos=0.0000e+000, du0_n_18_cdmos=0.0000e+000, dvth0_n_18_cdmos=0.0000e+000"
>>> d={k:v for k,v in [i.split('=') for i in s.split(',')]}
>>> d
{' du0_n_18_cdmos': '0.0000e+000', ' dxl_n_18_cdmos': '0.0000e+000', 'dtoxe_n_18_cdmos': '0.0000e+000', ' dvth0_n_18_cdmos': '0.0000e+000'}
首先,您可以按,
拆分字符串,然后用=
拆分。您可以使用以下列表理解[i.split('=') for i in s.split(',')]
来完成它,然后循环它并选择您的键和值!
如果您使用的是python 2.4,则需要使用dict
:
>>> d=dict([i.split('=') for i in s.split(',')])
答案 1 :(得分:1)
一个非常丑陋但有效的解决方案:
parmDict = eval("dict(" + paramString + ")")