在python中从字典中删除字符

2024-09-29 17:24:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本如下所示的词典

d = {'MNDTHNFEYH': ' 7.4775763897997019', 'MNDTNNTEYS': ' 7.6740344272610006', 
     "  ['MAPTNNTEYH": '[7.2142815502006803', 'MFPTNNTEYS': ' 7.5108109773494114',
     'MFDTHNAEYH': ' 7.6695035046773761'}

在这本词典中,我试图删除[,但我没有得到它。所以它应该看起来像

^{pr2}$

请帮帮我。在


Tags: 词典pr2帮帮我本词典mndtnnteysmfdthnaeyhmaptnnteyhmndthnfeyh
3条回答

假设您的键和浮点值中只有字母表,您可以使用regex消除其他字符

import re
d = {'MNDTHNFEYH': ' 7.4775763897997019', 'MNDTNNTEYS': ' 7.6740344272610006', "   ['MAPTNNTEYH": '[7.2142815502006803', 'MFPTNNTEYS': ' 7.5108109773494114', 'MFDTHNAEYH': ' 7.6695035046773761'}
# In the key replace everything else that is not in A-Z with ''
# In value replace everything else that is not in 0-9 or . with ''
d = {re.sub(r'[^A-Z]+','',k):re.sub(r'[^0-9.]+','',v) for k,v in d.items()}
d
{'MAPTNNTEYH': '7.2142815502006803',
 'MFDTHNAEYH': '7.6695035046773761',
 'MFPTNNTEYS': '7.5108109773494114',
 'MNDTHNFEYH': '7.4775763897997019',
 'MNDTNNTEYS': '7.6740344272610006'}
{k.translate(None,'''[ '"'''):v.translate(None,'[') for k,v in d.items()}

您似乎只想去掉键和值前缀中的“[”字符。str.l裂缝为你做这件事。您只需要遍历字典并从键和值中删除字符,同时通过字典理解重新生成字典。在

>>> d={'MNDTHNFEYH': ' 7.4775763897997019', 'MNDTNNTEYS': ' 7.6740344272610006', "   ['MAPTNNTEYH": '[7.2142815502006803', 'MFPTNNTEYS': ' 7.5108109773494114', 'MFDTHNAEYH': ' 7.6695035046773761'}
>>> d = {k.strip(" [\"\'"): v.strip(" [\"\'") for k, v in d.items()}
>>> import pprint
>>> pp = pprint.PrettyPrinter(indent = 4)
>>> pp.pprint(d)
{   'MAPTNNTEYH': '7.2142815502006803',
    'MFDTHNAEYH': '7.6695035046773761',
    'MFPTNNTEYS': '7.5108109773494114',
    'MNDTHNFEYH': '7.4775763897997019',
    'MNDTNNTEYS': '7.6740344272610006'}

如果您不使用Py2.7+,您可以将生成器构造传递给内置的dict

^{pr2}$

相关问题 更多 >

    热门问题