如何在字典中正确显示长字符串?
How to properly show a long string in a dictionary?
请看下面的字符串。我正在使用 lmfit
进行一些拟合,然后使用 yaml
将结果保存到字典中。我得到以下由 lmfit 结果生成的字符串:
"[[Fit Statistics]]\n # fitting method = leastsq\n # function\
\ evals = 4\n # data points = 70\n # variables = 2\n chi-square\
\ = 5.5122e+09\n reduced chi-square = 81062428.0\n Akaike info crit\
\ = 1276.72198\n Bayesian info crit = 1281.21897\n[[Variables]]\n Amplitude:\
\ 12.6121224 +/- 0.24761617 (1.96%) (init = 12.61212)\n Radius: \
\ 41.0677874 +/- 0.11681467 (0.28%) (init = 41.06779)\n Polydispersity:\
\ 0.05 (fixed)\n Background: 1e-05 (fixed)\n Roughness: 0 (fixed)\n\
[[Correlations]] (unreported correlations are < 0.100)\n C(Amplitude, Radius)\
\ = -0.446"
最好的呈现方式是什么? (例如:\n
似乎不起作用)
有一个包叫 pprint
。如果我没记错的话,它应该是 Python 标准库的一部分。以下是文档的 link。
https://docs.python.org/3/library/pprint.html
如果您只是想从美学上“呈现”这个以供您自己观察,试试这个:
ls=string.split("\n") print(ls)
如果您想从字符串中实际解析它或将其用于其他目的,而不是查看将生成的列表转换为元组或字典。
您可以这样做:
`def Convert(tup, di):
for a, b in tup:
di.setdefault(a, []).append(b)
return di`
`ls=string.split("\n")
ls2=[]
d={}
for x in ls:
if '=' in x:
(a,b) = x.split("=")
ls2.append((a,b))
elif ':' in x:
(a,b) = x.split(":")
ls2.append((a,b))
(Convert(ls2, d)) `
请看下面的字符串。我正在使用 lmfit
进行一些拟合,然后使用 yaml
将结果保存到字典中。我得到以下由 lmfit 结果生成的字符串:
"[[Fit Statistics]]\n # fitting method = leastsq\n # function\
\ evals = 4\n # data points = 70\n # variables = 2\n chi-square\
\ = 5.5122e+09\n reduced chi-square = 81062428.0\n Akaike info crit\
\ = 1276.72198\n Bayesian info crit = 1281.21897\n[[Variables]]\n Amplitude:\
\ 12.6121224 +/- 0.24761617 (1.96%) (init = 12.61212)\n Radius: \
\ 41.0677874 +/- 0.11681467 (0.28%) (init = 41.06779)\n Polydispersity:\
\ 0.05 (fixed)\n Background: 1e-05 (fixed)\n Roughness: 0 (fixed)\n\
[[Correlations]] (unreported correlations are < 0.100)\n C(Amplitude, Radius)\
\ = -0.446"
最好的呈现方式是什么? (例如:\n
似乎不起作用)
有一个包叫 pprint
。如果我没记错的话,它应该是 Python 标准库的一部分。以下是文档的 link。
https://docs.python.org/3/library/pprint.html
如果您只是想从美学上“呈现”这个以供您自己观察,试试这个:
ls=string.split("\n") print(ls)
如果您想从字符串中实际解析它或将其用于其他目的,而不是查看将生成的列表转换为元组或字典。 您可以这样做:
`def Convert(tup, di):
for a, b in tup:
di.setdefault(a, []).append(b)
return di`
`ls=string.split("\n")
ls2=[]
d={}
for x in ls:
if '=' in x:
(a,b) = x.split("=")
ls2.append((a,b))
elif ':' in x:
(a,b) = x.split(":")
ls2.append((a,b))
(Convert(ls2, d)) `