如何用Python提取文件每行首个数字并生成指定顶点输出?
问题解答
没错,split()方法正是你完成这个需求的核心工具——因为文件里每行的内容都是用空格分隔的,split()能把每行字符串拆成单个元素的列表,刚好适配你对每行内容的拆分处理需求。
修改后的完整代码
filename = "your_file.txt" # 替换成你的实际文件名 with open(filename) as f: # 读取文件内容,同时过滤空行、去掉每行首尾空格 content = [line.strip() for line in f if line.strip()] # 处理第一行:提取总顶点数并打印 total_vertices = int(content[0]) print(f"The number of total vertices is {total_vertices}") # 处理后续每行,生成对应顶点的邻接对格式 for vertex_idx in range(total_vertices): # 拆分当前行的内容为整数列表 neighbor_list = list(map(int, content[vertex_idx + 1].split())) # 生成每个邻接对的字符串形式 adjacency_pairs = [f"({vertex_idx}, {n})" for n in neighbor_list] # 拼接并打印最终格式 print(f"Vertex {vertex_idx}: {' '.join(adjacency_pairs)}")
代码说明
- 读取并预处理内容:用列表推导式一次性完成读取、去空格、过滤空行的操作,避免后续处理无效内容。
- 提取总顶点数:文件第一行是顶点总数,转成整数后直接按要求格式打印。
- 处理每行邻接顶点:
- 用
split()把每行的空格分隔字符串拆成单个元素的列表,再转成整数; - 用列表推导式生成
(顶点索引, 邻接点)格式的字符串; - 用
' '.join()把所有邻接对拼接成空格分隔的形式,最后按要求格式打印。
- 用
运行这段代码后,输出会完全匹配你期望的格式。
内容的提问来源于stack exchange,提问作者CaptainRyan1
相关产品推荐
相关产品推荐

