Python筛选长度小于4字符的单词报错,求技术协助
问题排查与解决
先逐个揪出你代码里的问题:
- 变量名错误:列表推导里循环变量是
word,但你写了len(name),name根本没定义,应该改成len(word)。 - 语法错误:
<5的位置放错了,整个判断条件应该包裹在列表推导的if后面,你把它写到了推导式外面,导致语法报错。 - 逻辑错误:需求是筛选长度小于4的单词,你写的是
<5,这会把长度为4的单词也包含进去;另外find_short_words这个函数你没定义就直接调用,运行时会报NameError。
修正后的代码方案
方案1:直接用列表推导式处理目标列表
# 目标列表 words = ['dog', 'cat', 'turtle', 'horse', 'pangolin'] # 筛选长度小于4的单词 short_words = [word for word in words if len(word) < 4] print(short_words) # 输出: ['dog', 'cat']
方案2:封装成可复用的函数
def find_short_words(word_list): # 函数内实现筛选逻辑 return [word for word in word_list if len(word) < 4] # 调用函数并输出结果 result = find_short_words(['dog', 'cat', 'turtle', 'horse', 'pangolin']) print(result) # 输出: ['dog', 'cat']
方案3:用循环实现(对应你尝试的循环方式)
words = ['dog', 'cat', 'turtle', 'horse', 'pangolin'] short_words = [] for word in words: if len(word) < 4: short_words.append(word) print(short_words) # 输出: ['dog', 'cat']
内容的提问来源于stack exchange,提问作者thekingofwands
相关产品推荐
相关产品推荐

