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

如何输出字符串中指定字符的所有位置值而非仅第一个?

解决字符串中所有匹配字符的位置获取问题

原代码的问题在于找到第一个匹配字符时就通过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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:40:58