<p>我在使用Python(继承代码)时出错。在一个平台上工作的Sum()函数调用在另一个平台上不起作用——我认为这是由于一些跨平台不兼容的语法造成的。我得到的错误是:</p>
<pre><code>bsrlx1(112)% /usr/bin/python run-print.py init data
File "run-print.py", line 105
val = sum(1 if x >= 0.5 else 0 for x in metricC[key]);
^
SyntaxError: invalid syntax
</code></pre>
<p>尽管这种语法在其他地方也可以使用。有没有人知道语法的变化或是什么问题??在</p>
<p>我调用的Python版本是:
Python2.4.3(2011年4月14日,20:41:59)
[GCC 4.1.2 20080704(Red Hat 4.1.2-50)]关于linux2</p>
<p>我的程序中的头文件是:</p>
^{pr2}$
<p>所以我想我可能用的是2.5版</p>
<p>正如您所发现的,这些代码不必要地复杂,不能在Python2.4上运行。改为:</p>
<pre><code>val = sum(1 for x in metricC[key] if x >= 0.5)
</code></pre>
<p>优点:(1)将在Python2.4上运行(2)不必解释添加布尔函数(3)效率更高(不浪费时间添加零)(4)最后没有愚蠢的<code>;</code>。在</p>