2012-11-18 82 views
1

字符串列表我試圖做出評估一個詞來看看它的部分是否不起來以任何方式(全四次運算)添加到23的腳本。如何評估在Python

我已經得到它歸結爲有可能會產生方程的字符串列表:

answerList = [12+15+12,12+15-12,12+15/12,...] 

現在我得到的問題是,我不能讓他們回到了名單的整數格式,看是否或者他們實際上不等於23/32。

+1

你想索引到一個列表? 'answerList [index]'會做到這一點。我不能說更多不知道一個詞是什麼,以及它如何評估 – inspectorG4dget

+0

一個詞是任何一個詞。我輸入一個單詞,將它分解成幾部分,然後應該評估它們。因此,例如,我會輸入'lol',它會將它放入['l','o','l']的列表中,然後將它與字母對號碼列表進行匹配相當於數字,然後把它放到另一個給我['12','15','12']的列表中。我會列出這個列表,使用一個嵌套列表來添加操作,並獲得第三個列表,其中包含操作迭代(如++,+ - ,+ /,+ *, - ,...)。我只是沒有辦法將它們從列表中刪除。 Eval()工作。 –

回答

0

退房的eval()函數

>>> eval("12+15+12") 
39 
>>> eval("12+15/12") 
13 

然後,您可以一邊做,結果什麼每個剛剛通過列表循環,調用eval。

0

如果你存儲你的數據像你的例子它會自動將其轉換反正整數 例如:

>>> answerList = [12+15+12,12+15-12,12+15/12, ...] 
>>> answerList 
[39, 15, 13, ...] 

但是,如果要存儲並打印出該公式已導致23,你需要存儲它們作爲一個字符串,然後使用eval將它們轉換爲int,以檢查它是否等於23或然後不打印出這個等式。

answerList = ['12+15+12','12+15-12','12+15/12'] 
for equation in answerList : 
    if eval(equation) == 23 : 
    print equation 
+0

你知道,我認爲它也會這樣做,但實際上並不是自動轉換它們。之前我曾看到過這種行爲,所以我很確定我不會遇到任何這樣做的問題。顯然我必須做些奇怪的事情,但至少我最終完成了這項工作。哈哈 –