我與蟒蛇3個工作,我想一個字符串轉換像轉換字符串 '2 * 2 * 3 * 5' 變成了一個Python整數3
「2 * 2 * 3 * 5'
到整數
2 * 2 * 3 * 5 = 60
我有很多的字典這樣的字符串,我需要使用它們作爲整數。有沒有快速的方法來做到這一點? 我已經習慣了使用拆分,但是我在做這件事時遇到了一些麻煩。
感謝您的答案。
我與蟒蛇3個工作,我想一個字符串轉換像轉換字符串 '2 * 2 * 3 * 5' 變成了一個Python整數3
「2 * 2 * 3 * 5'
到整數
2 * 2 * 3 * 5 = 60
我有很多的字典這樣的字符串,我需要使用它們作爲整數。有沒有快速的方法來做到這一點? 我已經習慣了使用拆分,但是我在做這件事時遇到了一些麻煩。
感謝您的答案。
如果可以接受使用eval(即,您的數據必須特別小心,以防止代碼不需要執行檢查),你可以嘗試:
str = '2*2*3*5'
print eval(str)
-1。由於沒有關於用戶或詞典來源的背景,暗示'eval'沒有任何警告是不負責任的。 –
對。我編輯了我的答案。 –
如果你所有的表情都重複乘法,你可以這樣做(無評估):
>>> from functools import reduce
>>> from operator import mul
>>> reduce(mul, [int(term) for term in '2*2*3*5'.split('*')])
60
你應該**不要**使用'eval'。看看這個[類似的問題],而不是看看(類似的問題)(http://stackoverflow.com/questions/2371436/evaluating-a-mathematical-expression-in-a-string)。 – Nicolas
另外,也許你可以爲你的字符串編寫一個簡單的解析器。你的表情比x * y * z更復雜嗎? – Nicolas
* eval *不一定是壞事。當然,這取決於數據的來源。如果他們來自靜態的,仔細檢查的文件比沒有解決方案可以更有效。 –