使用Python将文本文件中的行按每3行分组
Python实现文本文件按每3行分组
我有一个包含多行内容的文本文件,内容示例如下:
aDB8786793440 bDB8978963432 cDB9898908345 dDB8908908454 eDB9083459089 fDB9082390843 gDB9083490345需要用Python将这些行按每3行分为一组,只要能访问每个分组即可,期望输出形式如下:
# 形式一 group_1 = ["aDB8786793440", "bDB8978963432", "cDB9898908345"] group_2 = ["dDB8908908454", "eDB9083459089", "fDB9082390843"] # 形式二 groups = [["aDB8786793440", "bDB8978963432", "cDB9898908345"], ["dDB8908908454", "eDB9083459089", "fDB9082390843"]]
解决方案
方法一:生成嵌套列表(推荐)
直接读取文件内容,按每3行切片分组,得到嵌套列表,方便通过索引访问:
# 读取文件,过滤空行并去除换行符 with open('your_file.txt', 'r') as f: lines = [line.strip() for line in f if line.strip()] # 按每3行分组 groups = [lines[i:i+3] for i in range(0, len(lines), 3)] # 查看结果 print(groups)
运行后groups即为嵌套列表形式,最后一组若不足3行也会保留(比如示例中的第7行单独成组)。
方法二:生成独立分组变量
若需要创建group_1、group_2这类独立变量,可通过循环动态生成:
with open('your_file.txt', 'r') as f: lines = [line.strip() for line in f if line.strip()] # 动态创建分组变量 for idx in range(0, len(lines), 3): group_num = idx // 3 + 1 locals()[f'group_{group_num}'] = lines[idx:idx+3] # 验证变量 print(group_1) print(group_2)
此方法会在当前命名空间中生成对应变量,直接通过变量名即可访问分组内容。
内容的提问来源于stack exchange,提问作者Zoran
相关产品推荐
相关产品推荐

