擅长:python、mysql、java
<p>在Python中不能传递运算符<code>reduce(+, [1,2,3])</code>会给您一个<code>SyntaxError</code>。类似地,列表中间的操作符也会。你知道吗</p>
<p>如果希望使用字符串查找运算符,可以使用<code>operator</code>模块构造字典。你知道吗</p>
<pre><code>SYMBOL_TO_OPERATOR = {"*": operator.mul,
"+": operator.add, ...}
</code></pre>
<p>这些只是普通的方法,尽管你不能像使用符号一样使用“中缀”符号。你知道吗</p>
<p>此外,作为<code>reduce</code>操作,这没有多大意义(这也不是非常惯用的python)。您可以轻松地执行以下操作:</p>
<pre><code>statements = [[1, "*", 5], [2, "+", 9]]
results = [SYMBOL_TO_OPERATOR[symbol](a, b) for a, symbol, b in statements]
</code></pre>