好的回到这里 -
我有这本词典 -
这个字典是在解析一个由注释和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中是不可变的,我如何用列表替换字符串?
答案 0 :(得分:0)
您想要将密钥'/* JOB_ATR_depend */'
替换为列表吗?所以你希望列表用作你的词典中的一个键?
如果这是你想要的,你就不能。列表是可变的,因此不可清除,不能用作字典中的键
答案 1 :(得分:0)
我建议在字典中创建一个新的键值配对,然后删除与del的原始键值配对。