Python3:如何将数字+字母格式单列数据转换为关联行?
解决方案
可以通过遍历数据行,记录最近的数字标识,将后续的字母行与该数字拼接,实现格式转换。以下是具体Python3代码:
# 从文件读取数据的方式(如果数据存在文件中) # with open('input.txt', 'r') as f: # current_data = [line.strip() for line in f if line.strip()] # 直接定义原始数据(测试用) current_data = [ "1104369592", "MA01609Worcester", "MA01604Worcester", "MA01604Worcester", "1104842379", "MA01040Hampden", "MA01040Hampden", "1104896613", "MA02745Bristol", "MA02745Bristol" ] result = [] current_id = None for line in current_data: # 判断当前行是否为纯数字(作为分组标识) if line.isdigit(): current_id = line else: # 确保已有有效分组标识时再拼接 if current_id: result.append(f"{current_id} {line}") # 打印转换后结果 for item in result: print(item) # 写入到输出文件的方式 # with open('output.txt', 'w') as f: # f.write('\n'.join(result))
逻辑说明
- 先获取原始数据:可以直接定义列表,或者从文本文件读取并去除空行
- 用
current_id变量保存当前生效的数字分组标识 - 逐行遍历数据:
- 遇到纯数字行,更新
current_id为该行内容 - 遇到字母组合行,将其与
current_id拼接成目标格式,存入结果列表
- 遇到纯数字行,更新
- 最后可选择打印结果或写入文件
注:你给出的预期结果中第一个数字为1104469592,但原始数据对应行是1104369592,若为笔误,直接修改原始数据中的对应行即可,代码逻辑不受影响。
内容的提问来源于stack exchange,提问作者hilhil
相关产品推荐
相关产品推荐

