擅长:python、mysql、java
<p>这是因为,您使用python3.x,其中print<strong>函数</strong>在打印到控制台后返回None,因此您得到这个输出。然而,如果您使用了Python2.x,您将正确地得到print函数的语法错误。你知道吗</p>
<p>更好的例子是这样的(在Python2.x中,因为您的示例在Python2.x中不起作用)</p>
<pre><code>>>> b = []
>>> [b.append(i) for i in range(10)]
...[None, None, None, None, None, None, None, None, None, None]
>>> print b
...[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
</code></pre>
<p>如果要打印内容并将其添加到列表中,则应如下所示:</p>
<pre><code>[(print(foo) or foo) for foo in CharacterSkillLink.objects.all() if foo.speciality]
</code></pre>
<p>然而,在我看来,不要使用这样的东西,因为事情可能会在一段时间后变得丑陋。你知道吗</p>