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

如何实现基于第三个字符串选择字符的Python函数并修复返回问题

修复Python chars函数的问题

你的代码只返回首个字符,核心问题是仅处理了字符串的第一个索引,没有遍历所有位置拼接完整结果。以下是正确的实现方案:

实现方式一:循环遍历拼接

def chars(str1: str, str2: str, str3: str) -> str:
    result = []
    # 同时遍历三个字符串的对应位置字符
    for s1_char, s2_char, flag in zip(str1, str2, str3):
        if flag == '0':
            result.append(s1_char)
        else:
            result.append(s2_char)
    # 将列表转为字符串返回
    return ''.join(result)

实现方式二:列表推导式(简洁版)

def chars(str1: str, str2: str, str3: str) -> str:
    return ''.join(
        s1 if flag == '0' else s2 
        for s1, s2, flag in zip(str1, str2, str3)
    )

关键说明

  • 使用zip(str1, str2, str3)可以同时获取三个字符串对应位置的字符,确保每个索引的操作一一对应
  • 用列表收集结果比直接拼接字符串更高效(Python中字符串是不可变类型,每次拼接都会生成新对象)
  • 最后通过''.join()将列表中的字符拼接成完整字符串返回

错误代码示例(供对比)

如果你的代码是类似以下写法,就会只返回首个字符:

# 错误示例:仅处理第一个索引
def chars(str1: str, str2: str, str3: str) -> str:
    if str3[0] == '0':
        return str1[0]
    else:
        return str2[0]

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

相关产品推荐
方舟 Agent Plan

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

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