You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python回文检查器运行返回空列表 无法得到正确筛选结果

问题现象

编写了如下Python代码用于筛选单词列表中的回文词:

words = ['Anna', 'Alexey', 'Alla', 'Kazak', 'Dom']

def palindrome():
    filtered_2 = list(filter(lambda x: x == x[::-1], words))
    print(filtered_2)

palindrome()

代码预期返回列表内的所有回文词,预期输出为:

['Anna', 'Alla', 'Kazak']

但实际运行后仅输出空列表:

[]
故障原因

Python的字符串等值判断是大小写敏感的,列表中的回文词均为首字母大写、其余字母小写的格式,直接比较会出现判定错误:

  • 以'Anna'为例,直接反转后得到的字符串是'annA',首字符为大写A、尾字符为小写a,和原字符串做相等判断时返回False
  • 'Alla'、'Kazak'的判定逻辑完全一致,所有单词都无法通过相等校验,最终filter返回空结果。
修改方案

判断回文前,先将单词统一转换为全小写(或全大写)格式,再做反转比较即可,修改后代码如下:

words = ['Anna', 'Alexey', 'Alla', 'Kazak', 'Dom']

def palindrome():
    # 统一转小写后再比较正序和倒序内容
    filtered_2 = list(filter(lambda x: x.lower() == x.lower()[::-1], words))
    print(filtered_2)

palindrome()

运行上述代码即可得到预期输出['Anna', 'Alla', 'Kazak']。

内容的提问来源于stack exchange,提问作者Teriyaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:09:17