2014-01-18 97 views
-2

好替換字符串由列表值回到這裏再次 -從字典在Python

我有這個詞典 -

這本字典已經被解析其中包含的意見和C A C文件後創建 - 的結構,因此,對於每個評論封閉b/W//有與it.so相關聯的鍵值對結構的值是/ /:{}(希望這有意義)

{'': [], '/* 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() 

將評論替換爲其對應的結構值{}

示例:對於e鍵

/* 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

該文件有多大?將它全部讀入內存是否合理?如果是這樣,爲什麼['string.replace()'](http://docs.python.org/2/library/string.html#string.replace)不起作用? – jedwards

+0

我在字典中看到幾個字符串。你想用列表替換哪個特定的字符串? (在字典中爲鍵添加值的語法是'list [key] = value'。) –

+0

「我如何用列表替換文件中的字符串」是一個毫無意義的問題,因此您很難清楚「問。你只想用列表的第一個元素替換字符串?列表本身的'repr'?還有別的嗎? – roippi

回答

0

你想用列表替換密鑰'/* JOB_ATR_depend */'?所以你希望列表在你的字典中用作關鍵字?

如果這是你想要的,你不能。列表是可變的,因此不可排除,並且不能用作字典中的鍵

+0

我不認爲這是他所要求的。 – jedwards

+2

我的理解是,他想在文件中用**值**替換**鍵**的出現。 – Christian

+0

是啊,好像你是對的 –

0

我建議在字典中創建一個新的鍵值對,然後刪除與del的原始鍵值對。

+0

雖然目前還不清楚OP的要求,但我不認爲這是事實。 – jedwards

+0

你可以看到字典已經存在,這是一個註釋行作爲鍵和一個結構作爲文件中的值whenevr特定評論將遇到它將被替換相應的結構 – user3203406