擅长:python、mysql、java
<p>你的问题是Python的问题,真的,不是Sage本身。Python对列表理解有一些过滤,但看起来不是这样的。参见例如<a href="https://stackoverflow.com/questions/4260280/if-else-in-pythons-list-comprehension">this question</a>。你知道吗</p>
<p>所以<a href="http://sagecell.sagemath.org/?z=eJxdyL0KgCAQAOA96B1uvDMLHRp9kmgQ_zgxBW3o8YPGvvG77N35weMoLWG3np0tiLxkEiwyEXCE5DyyzGSMglBGgFVvCmLrkIErjG5rCqjlTue3_F-apxe-Fx9J&lang=sage" rel="nofollow noreferrer">let's try it</a>:</p>
<pre><code>matrix([[log(radical((i+j)*i*j)) if gcd(i,j)==0 else -1.0 for j in srange(1,5)] for i in srange(1,5)])
</code></pre>
<p>顺便问一下,你真的想要<code>if gcd(i,j)==1</code>?你不可能在这一次得到零的gcd!你知道吗</p>