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

时间:2014-01-18 19:11:37

标签: python dictionary

好的回到这里 -

我有这本词典 -

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

{'': [], '/* 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中是不可变的,我如何用列表替换字符串?

2 个答案:

答案 0 :(得分:0)

您想要将密钥'/* JOB_ATR_depend */'替换为列表吗?所以你希望列表用作你的词典中的一个键?

如果这是你想要的,你就不能。列表是可变的,因此不可清除,不能用作字典中的键

答案 1 :(得分:0)

我建议在字典中创建一个新的键值配对,然后删除与del的原始键值配对。