从包含 key=value 的字符串构建字典
Build dictionary from string containing key=value
我正在尝试从这样的字符串构建字典:
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)
但它 Returns 错误 "ValueError: dictionary update sequence element #0 has length 1; 2 is required"
也许关键的下划线是一个问题?因为据我所知,根据 this 它应该是正确的表示法。
谢谢大家!
您可以使用以下字典理解,:
>>> 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(',')])
一个非常丑陋但有效的解决方案:
parmDict = eval("dict(" + paramString + ")")
我正在尝试从这样的字符串构建字典:
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)
但它 Returns 错误 "ValueError: dictionary update sequence element #0 has length 1; 2 is required" 也许关键的下划线是一个问题?因为据我所知,根据 this 它应该是正确的表示法。
谢谢大家!
您可以使用以下字典理解,:
>>> 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(',')])
一个非常丑陋但有效的解决方案:
parmDict = eval("dict(" + paramString + ")")