<p>每当我运行这段代码时,它只会给我一个空白列表,我想知道我做错了什么。我试图打印一个超过n的单词列表。当我尝试运行更新的代码时,它只打印我输入的单词列表中的第一个单词。在</p>
<pre><code>def filterlongword(string,number):
for i in range(len(string)):
listwords = []
if len(string[i]) > number:
listwords.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(string[i])
return listwords
def main():
words = input("Please input the list of words: ")
integer = eval(input("Please input an integer: "))
words1 = filterlongword(words,integer)
print("The list of words greater than the integer is",words1)
main()
</code></pre>
<p>更好的是</p>
<pre><code>def filterlongword(string,number):
return filter(lambda word:len(word)>number, string)
# or: return [w for w in string if len(w) > number]
</code></pre>