用Python中字典中的列表值替换字符串

2024-09-28 16:58:14 发布

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

好吧,再回到这里-

我有这本字典-

这个字典是在解析一个由注释和C结构组成的C文件之后创建的,因此对于b/w//中包含的每个注释,都有一个与之相关的structure值是的。所以键值对是//:{}(希望这有意义)

{'': [], '/* JOB_ATR_depend */': ['{ ATTR_c,\n\t\tREAD_WRITE', 'ATR_DFLAG_MOM', 'ATR_DFLAG_ALTRUN,\n                ATR_TYPE_STR,\n\t\tNULL_VERIFY_DATATYPE_FUNC,\n                verify_value_checkpoint\n\t},'], '/* ATTR_q */': ['{ ATTR_q,\n                 READ_WRITE', 'ATR_DFLAG_ALTRUN', 'ATR_DFLAG_SELEQ', 'ATR_DFLAG_MOM,\n                 ATR_TYPE_STR,\n                 NULL_VERIFY_DATATYPE_FUNC,\n                 NULL_VERIFY_VALUE_FUNC\n         },'], '/* JOB_ATR_array_indices_submitted */': ['{ ATTR_eligible_time,             \n\t\tNO_USER_SET', 'ATR_DFLAG_SSET', 'ATR_DFLAG_ALTRUN,\n                ATR_TYPE_LONG,\n\t\tverify_datatype_time,\n                NULL_VERIFY_VALUE_FUNC\n        },'], '/* JOB_ATR_eligible_time */': ['{ ATTR_u,\n\t\tREAD_WRITE', 'ATR_DFLAG_SELEQ', 'ATR_DFLAG_SCGALT,\n                ATR_TYPE_ARST,\n\t\tNULL_VERIFY_DATATYPE_FUNC,\n                verify_value_user_list\n        },'], '/* JOB_ATR_exec_host */': ['{ ATTR_depend,                   \n\t\tREAD_WRITE,\n                ATR_TYPE_LIST,\n\t\tNULL_VERIFY_DATATYPE_FUNC,\n                verify_value_dependlist\n\t},'], '/* JOB_ATR_userlst */': ['{ ATTR_a,\n\t\tREAD_WRITE', 'ATR_DFLAG_ALTRUN,\n                ATR_TYPE_LONG,\n\t\tverify_datatype_long,\n                NULL_VERIFY_VALUE_FUNC\n        },'], '/* JOB_ATR_exectime */': ['{ ATTR_exechost,          \n\t\tREAD_ONLY,\n\t\tATR_TYPE_STR,\n\t\tNULL_VERIFY_DATATYPE_FUNC,\n                NULL_VERIFY_VALUE_FUNC\n\t},'], '/* JOB_ATR_array_indices_remaining */': ['{ ATTR_array_indices_submitted,  \n\t\tATR_DFLAG_SvWR', 'ATR_DFLAG_SvRD', 'ATR_DFLAG_Creat', 'READ_ONLY,\n                ATR_TYPE_STR,\n\t\tNULL_VERIFY_DATATYPE_FUNC,\n                verify_value_jrange\n        },']}

现在我在读这样一个文件-

 for i in temp_file

即逐行处理文件,因此每当遇到这样的注释时

 if re.search('\/*',line)

如果这个注释和我字典里的关键字匹配,我就去查字典

 for i,j in dict.iteritems()

注释将替换为其相应的结构值{}

你知道吗例如:对于钥匙

 /* JOB_ATR_depend */ 

遇到的一个文件,我会喜欢它被替换为其相应的值

{ ATTR_c,\n\t\tREAD_WRITE', 'ATR_DFLAG_MOM', 'ATR_DFLAG_ALTRUN,\n                    ATR_TYPE_STR,\n\t\tNULL_VERIFY_DATATYPE_FUNC,\n                verify_value_checkpoint\n\t},

既然字符串在python中是不可变的,那么如何用列表替换字符串呢?你知道吗


Tags: valuetypejobwriteattrfuncverifydatatype
2条回答

我建议在字典中创建一个新的键值对,然后用del删除原来的键值对。你知道吗

要用列表替换键'/* JOB_ATR_depend */'?所以你想把这个单子作为你的字典的一个键?你知道吗

如果这是您想要的,则不能。List是可变的,因此不可散列,并且不能用作dict中的键

相关问题 更多 >