新闻中心
python:在字符串中查找指定字符的多个索引方法
答案是使用列表推导式、while循环结合str.find或re.finditer可查找字符所有位置:1. 列表推导式遍历enumerate获取索引;2. while循环用find持续查找并更新起始位置;3. re.finditer配合正则提取匹配位置,注意特殊字符需转义;4. 可封装为函数复用。

在 Python 中,如果想在一个字符串中查找某个字符的所有出现位置(即多个索引),有几种简单有效的方法可以实现。下面介绍几种常用方式。
使用列表推导式和 enumerate
这是最常见也最高效的方式之一。通过 enumerate 遍历字符串的同时获取索引和字符,再用条件判断筛选出目标字符的索引。
text = "hello world" char = "l" indices = [i for i, c in enumerate(text) if c == char] print(indices) # 输出: [2, 3, 9]
使用 while 和 str.find 方法
str.find() 可以从指定位置开始查找字符第一次出现的位置,找不到时返回 -1。利用循环不断更新起始位置,可以找出所有匹配索引。
text = "hello world"
char = "l"
indices = []
start = 0
while True:
index = text.find(char, start)
if index == -1:
break
indices.append(index)
start = index + 1
print(indices) # 输出: [2, 3, 9]
使用 re.finditer 配合正则表达式
如果你习惯使用正则表达式,re.finditer 能返回所有匹配项的迭代器,每个匹配对象包含其位置信息。
N世界
一分钟搭建会展元宇宙
138
查看详情
import re <p>text = "hello world" char = "l" indices = [match.start() for match in re.finditer(char, text)] print(indices) # 输出: [2, 3, 9] </font></p>
注意:若字符是特殊正则符号(如 . * + ? 等),需要先用 re.escape(char) 转义。
封装成通用函数
可以把上述任意一种方法封装为可复用的函数,方便多次调用。
def find_all_indices(text, char):
return [i for i, c in enumerate(text) if c == char]
<h1>使用示例</h1><p
>result = find_all_indices("banana", "a")
print(result) # 输出: [1, 3, 5]</p>基本上就这些常用方法。根据具体场景选择即可:列表推导简洁明了,find 循环控制灵活,正则适合复杂模式匹配。不复杂但容易忽略细节,比如边界处理和特殊字符转义。基本上就这些。
以上就是python:在字符串中查找指定字符的多个索引方法的详细内容,更多请关注其它相关文章!
# 这是
# 长沙淘宝营销推广招聘网
# 优化网站怎么收录的视频
# 仙桃茶叶网站推广方案
# 列车网站建设素材图
# 石家庄无极网站推广哪家好
# 耒阳包年网站推广
# 如皋市网站建设方案
# 常州网站优化推广方案
# 网店口碑推广营销
# 济宁正规主词seo优化企业
# python
# 复用
# 源代码
# 如何将
# 数据包
# 转换为
# 几种
# 遍历
# 多个
# app
# 正则表达式
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
c++ 获取系统当前时间 c++时间戳获取方法
58动漫网在线官方网 58动漫网正版动漫入口网址
《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情
美团外卖商家服务中心入口 美团商家版官网入口
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用
在J*a项目里如何构建对象之间的契约_接口约束的实际落地
1688商家版怎样分析买家画像精准供货_1688商家版分析买家画像精准供货【供货策略】
4399免费游戏网址入口 4399小游戏免费入口点开即玩
win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
邮政快递包裹最新位置 邮政快递实时追踪入口
在Qt QML中通过Python字典动态更新TextEdit内容的教程
Promise错误处理:在catch后终止链式then执行的策略
在VS Code中配置和运行Dart程序的完整步骤
Lar*el头像管理:图片缩放与旧文件删除的最佳实践
Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧
PyTorch模型训练效果不佳?深入剖析常见错误与调试技巧
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
Yandex浏览器官方网页版入口 Yandex浏览器最新版官网
yy漫画网页版官方入口_yy漫画官网登录页面链接
在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明
163邮箱官方主页登录 直达网易邮箱登录核心页面
如何仅使用CSS更改登录界面背景图像图标的颜色
如何将HTML表格多行数据保存到Google Sheets
优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题
vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法
Bilibili动漫最新防封地址发布-Bilibili动漫2025年最稳正版入口推荐
谷歌邮箱注册显示错误Gmail服务器异常与延迟处理
京东单号查询入口_京东快递订单追踪入口
Python自定义类排序:解决lambda键值访问TypeError的实践指南
淘宝支付提示失败如何解决 淘宝支付流程优化方法
Angular中单选按钮的正确使用与常见陷阱解析
微信客户端如何收红包_微信客户端接收红包使用教程
Steam官网入口直达 Steam注册及登录步骤
Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】
漫蛙2在线漫画入口 漫蛙正版漫画网页版直达
AO3官网镜像链接 Archive of Our Own同人文在线浏览
Log4j Console Appender性能瓶颈与高并发优化策略
打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门
夸克浏览器网页版最新地址 夸克浏览器官方入口合集
天眼查企业查询官网入口 天眼查官方网页版查询
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
MAC如何将整个网页截长图_MAC使用Safari的导出为PDF或第三方工具
蛙漫安全无毒 官方认证的绿色入口
Lar*el递归关系中排除子孙节点的策略
邮政快递单号查询入口 邮政快递物流信息在线查询入口
css链接悬停下划线样式如何自定义_使用::after结合content和transition


2025-11-27
浏览次数:次
返回列表
>result = find_all_indices("banana", "a")
print(result) # 输出: [1, 3, 5]</p>