擅长:python、mysql、java
<p>你最好的办法是使用列表理解。列表包含三个部分:</p>
<ul>
<li>要对输入的每个元素执行的转换</li>
<li>输入本身,以及</li>
<li>一个可选的“if”语句,指示何时生成输出</li>
</ul>
<p>例如,我们可以说</p>
<pre><code>[ x * x # square the number
for x in range(5) ] # for each number in [0,1,2,3,4] `
</code></pre>
<p>这将产生名单</p>
<pre><code>[0 1 4 9 16]
</code></pre>
<p>我们可以添加第三行(过滤),只得到奇数:</p>
<pre><code>[x * x
for x in range(5)
if x % 2] # divide x by 2, take the remainder if 1, output the number`
</code></pre>
<p>在您的特殊情况下,我们不关心转换部分。我们只想输出符合您标准的单词:</p>
<pre><code>[word
for word in word_list
if len(word) >= 3 and word[0] == word[-1] ]
</code></pre>
<p>这会给你一张单子。现在你只需要得到列表的长度:</p>
<pre><code>len( [word
for word in word_list
if len(word) >= 3 and word[0] == word[-1] ] )
</code></pre>
<p>想把它变成函数吗?给你:</p>
<pre><code>def count_matching_words(word_list):
return len([word
for word in word_list
if len(word) >= 3 and word[0] == word[-1]])
</code></pre>