2016-09-29 41 views
0

我有一個程序,產生數組和數組的運算符,如下所示:[1,'+',6,'*',3,'*',2] 我想要做的是評估這種數組的數值使用操作的順序。數組的長度可能很長,但它們總是以數字開頭和結尾,數字不會跟隨數字,操作符也不會跟隨操作符。
我想我可以使用operator模塊將操作符字符串轉換爲實際操作,但我不知道如何管理操作部分的順序。評估在Python中的運算符和數字的數組

+0

最簡單的方法是將字符加入字符串並使用內置的eval()。一般不建議使用這個,但沒有更大的圖片的可見性,這將做你在問什麼。 –

+0

如果'eval'無法確定,請查看[shunting yard algorithm](https://en.wikipedia.org/wiki/Shunting-yard_algorithm)。 – niemmi

回答

0

你可以試試這個,雖然很天真。

a = [1,'+',6,'*',3,'*',2] 
source = '' 
for i in a: 
    source += str(i) 
print eval(source) # 37 
+2

@ cricket_007不,eval(''。join(map(str,a)))'。 –