如何将多行字符串分割为指定行数的字符串列表?
按指定行数分割字幕字符串为列表的实现方法
核心思路
先把原始字符串拆分成单独的行(保留换行符),再按指定行数分组,每组合并成一个字符串即可。
Python 实现代码
假设你已经有了目标字符串 subtitle_str,指定分割行数为 chunk_size,代码如下:
# 拆分字符串为每行,保留换行符 lines = subtitle_str.splitlines(keepends=True) # 按指定行数分组合并 result_list = [''.join(lines[i:i+chunk_size]) for i in range(0, len(lines), chunk_size)]
代码解释
splitlines(keepends=True):把原始字符串按换行拆分,同时保留每行末尾的换行符,这样后续合并时不需要手动添加换行,能完全还原原格式。- 列表推导式分组:通过
range(0, len(lines), chunk_size)生成每组的起始索引,每次取从当前索引开始的chunk_size行,用''.join()合并成一个字符串,最终得到目标列表。
示例验证
以你提供的字幕字符串为例,指定 chunk_size=5 时:
- 第一个列表元素包含前5行(序号1的字幕内容+空行)
- 第二个元素包含接下来5行(序号2的字幕内容+空行)
- 第三个元素包含再5行(序号3的字幕内容+空行)
- 第四个元素包含剩余2行(序号4的字幕内容)
完全符合需求。
内容的提问来源于stack exchange,提问作者Roony
相关产品推荐
相关产品推荐

