如何输出字符串中指定字符的所有位置值而非仅第一个?
解决字符串中所有匹配字符的位置获取问题
原代码的问题在于找到第一个匹配字符时就通过return终止了函数,所以只能返回第一个匹配位置。要获取所有匹配的位置,我们需要收集所有符合条件的索引,最后统一返回。
修改后的代码如下:
def placevalue(a, b): positions = [] for i in range(len(a)): if a[i] == b: positions.append(i + 1) # 存储从1开始的位置 if positions: return positions else: return "not found" input_str = input() target_char = input() result = placevalue(input_str, target_char) # 处理输出格式,和示例一致 if isinstance(result, list): print(",".join(map(str, result))) else: print(result)
关键改动说明
- 新增空列表
positions,用来收集所有匹配的位置 - 遍历过程中不再立即返回,而是将符合条件的位置(
i+1,因为需要从1开始计数)添加到列表中 - 遍历结束后,判断列表是否有内容:有内容则返回列表,无内容则返回"not found"
- 输出时将列表转为逗号分隔的字符串,和示例输出格式匹配
示例运行
输入字符串:
banana,输入目标字符:a输出:
2,4,6输入字符串:
apple,输入目标字符:x输出:
not found
内容的提问来源于stack exchange,提问作者Kriti Pandey
相关产品推荐
相关产品推荐

