Python如何获取字符串中特定字符(如"a")的所有出现位置?
获取字符串中特定字符/子串的所有出现位置
如果你想找到字符串中某个特定字符(比如"a")或子串的所有出现位置,可以用以下几种实用方法:
方法一:循环使用find()方法
利用find()的第二个参数指定查找起始位置,循环查找直到找不到为止:
s = "abracadabra" target = "a" positions = [] start_pos = 0 while True: current_pos = s.find(target, start_pos) if current_pos == -1: break positions.append(current_pos) start_pos = current_pos + 1 # 从下一个位置开始继续查找 print(positions) # 输出:[0, 3, 5, 7, 10]
这个方法不仅适用于单个字符,还能查找多字符子串的所有位置,比如把target改成"ab",就能找到所有"ab"的起始索引。
方法二:用enumerate()遍历字符串(适合单个字符)
直接遍历字符串的每个字符,记录符合条件的索引,写法更简洁:
s = "abracadabra" target = "a" positions = [idx for idx, char in enumerate(s) if char == target] print(positions) # 输出:[0, 3, 5, 7, 10]
这种方法代码更短,可读性强,但只适合查找单个字符的情况。
内容的提问来源于stack exchange,提问作者Martí Xuclà
相关产品推荐
相关产品推荐

