2016-10-23 5 views
-1

나는 문자열 방정식에 값을 지정하고 싶지만 논리가 붙어 있습니다.방정식에 사전에서 값을 할당

dic1 = {'d': '2', 'a': '1', 'c': '3', 'b': '2'} 
equation_string = 'ab+cd' 

내가 좋아하는 출력에 원하는 :

'12+32' = 44 

내 논리 :

1 -> for 루프는 문자열로 값을 할당 작성하지만 난 방법을 모르는 문자열에서 '+'기호를 건너 뜁니다.

for itr in range(0,len(equation_string)): 
      equation_String[itr] = dict1[equation_str[itr]] 
+0

: 아래의 샘플 코드입니다. 문자가 사전에 있는지 확인하고 새 문자열을 작성하십시오. – TigerhawkT3

답변

1

달성하기 위해서. 먼저 을 으로 바꾸고 값을으로 바꾸고 string.replace()을 사용해야합니다. 문자열 내의 모든 바꾸기를 수행 할 때 문자열을 eval()을 사용하여 실행하십시오. 당신이 당신의 코드를하려고하면, 당신은 당신이 불변의 객체의 요소를 재 할당하지 않는 것을 볼 수

>>> dic1 = {'d': '2', 'a': '1', 'c': '3', 'b': '2'} 
>>> equation_string = 'ab+cd' 
>>> for k, v in dic1.iteritems(): 
...  equation_string = equation_string.replace(k, v) 
... 
>>> equation_string 
'12+32' # Updated value of equation_string 
>>> eval(equation_string) 
44 
+0

Equation_string에서'equation_string = ''.join (x에 대해 dic1.get (x, x))'을 수행 할 수 있습니다. – TigerhawkT3

관련 문제