如何实现基于第三个字符串选择字符的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
相关产品推荐
相关产品推荐

