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

如何编写函数将指定数组中的字母替换为字符串中的‘*’

问题分析与修复

你的代码核心问题有两个:

  • 错误地将单个字符和数组直接做相等判断(c == lett),这永远不会匹配成功,应该判断字符是否存在于目标数组中
  • 未处理大小写匹配问题,示例里的大写I需要被替换,但传入的数组里是小写i,得忽略大小写来做判断

修正后的代码

def filter(word, lett):
    new_word = ''
    # 把要替换的字母统一转成小写,消除大小写差异
    target_letters = [l.lower() for l in lett]
    for c in word:
        # 当前字符转小写后检查是否在目标列表内
        if c.lower() in target_letters:
            new_word += '*'
        else:
            new_word += c
    return new_word

# 测试示例
print(filter('Irisk', ['i','k']))  # 输出: *r*s*

关键改动说明

  • 先将传入的字母数组lett统一转成小写,避免因大小写不一致导致的匹配失败
  • 判断时把当前字符也转成小写,用in关键字检查是否在目标列表中,替代原代码中错误的==比较
  • 保留原字符串中无需替换字符的大小写(比如示例里的'r'和's'保持原样)

如果不需要忽略大小写,只需把判断逻辑改成c in lett即可,但根据你的示例需求,显然需要支持大小写不敏感的替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:35:35