Python如何读取每行一个数字的文本文件生成对应列表
实现方案
第一步:修正文件读取逻辑
你原有代码的核心问题是append语句没有写在for循环的缩进块内,没有实现逐行添加内容,此外还有几个可优化点:
- 直接使用
list作为变量名,会覆盖Python内置的列表类型,属于不规范写法 - 读取的内容是字符串类型,没有转成数字,后续做数值运算会报错
- 没有自动关闭文件句柄,建议用上下文管理器
with实现更安全
修正后的读取代码如下:
num_list = [] # 存储的是浮点数就把下面的int换成float with open("doc.txt", "r", encoding="utf-8") as f: for line in f: num_list.append(int(line.strip()))
这时候得到的num_list就是和文件行一一对应的数字列表,可以直接通过索引num_list[0]、num_list[1]访问任意位置的元素。
第二步:实现两两分组遍历
直接用步长为2的索引遍历即可,写法非常简洁:
# 步长设为2,每次迭代跳2个位置 for i in range(0, len(num_list), 2): # 防止列表长度为奇数时索引越界,不需要处理奇数场景可以删掉这个判断 if i + 1 < len(num_list): group_first = num_list[i] group_second = num_list[i+1] # 这里写你对每组的处理逻辑 print(f"当前组:{group_first}, {group_second}") else: # 总数字个数为奇数时,最后单个元素的处理逻辑写在这里,不需要可以删 print(f"剩余单个元素:{num_list[i]}")
内容的提问来源于stack exchange,提问作者CuriousCoder
相关产品推荐
相关产品推荐

