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

Python:基于列表元素创建嵌套列表并按数字拆分

没问题,我来帮你搞定这个需求!其实思路挺直观的:我们只需要遍历字符串里的每个字符,同时维护两个列表——一个用来存最终结果的大列表,另一个用来临时存放当前正在收集的非数字字符子列表。

直接上代码,你可以直接运行试试:

input_str = 'a3buysi8byjs'
final_result = []
current_group = []

for char in input_str:
    # 判断当前字符是不是数字
    if not char.isdigit():
        current_group.append(char)
    else:
        # 遇到数字时,把当前攒的子列表加入结果(避免空列表的情况)
        if current_group:
            final_result.append(current_group)
            current_group = []
# 循环结束后,别忘了把最后一组非数字字符加进去
if current_group:
    final_result.append(current_group)

print(final_result)
# 输出正好是你要的:[['a'], ['b','u','y','s','i'], ['b','y','j','s']]

关键点解释:

  • 用char.isdigit()快速判断字符是否为数字,这个方法对0-9的字符都有效
  • 每次遇到数字时,先检查当前临时子列表有没有内容(比如连续出现数字的情况,就不会往结果里加空列表),然后把它加入大列表,再重置临时列表准备下一轮收集
  • 循环结束后必须再检查一次临时列表,因为字符串最后一段没有数字触发添加操作,得手动把它加进结果里

边界情况测试:

如果遇到一些特殊输入,这个代码也能处理:

  • 开头是数字:比如'3abc5def',输出是[['a','b','c'], ['d','e','f']]
  • 结尾是数字:比如'abc3def5',输出是[['a','b','c'], ['d','e','f']]
  • 没有数字:比如'abcdef',输出是[['a','b','c','d','e','f']]
  • 连续数字:比如'a123b',输出是[['a'], ['b']]

这样应该就能完美解决你的问题啦!

内容的提问来源于stack exchange,提问作者user8474919

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:31:50