Python随机选择([i if len(i)==9 for i in words])列表理解语法错误
回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>Python 2.7版</p>
<p>Ubuntu 12.04版</p>
<p>我正试图扭转这种局面:</p>
<pre><code>nine = []
for each in word_list:
if len(each) == 9:
nine.append(each)
return random.choice(nine)
</code></pre>
<p>对此:</p>
<pre><code>return random.choice([i if len(i) == 9 for i in words])
</code></pre>
<p>但是这给了我一个语法错误,我相信顺序是正确的,那么是什么导致这个失败呢?你知道吗</p>
<p>如果没有else部分,<code>if</code>必须在末尾。所以改变吧</p>
<pre><code>[i if len(i) == 9 for i in words]
</code></pre>
<p>至</p>
<pre><code>[i for i in words if len(i) == 9]
</code></pre>