如何从file.txt读取数字并自动创建元素数不超100的数组
实现方案
先澄清认知误区:现代计算机内存可轻松承载数万、数十万级别的数字数组,单个数组元素过多绝不会损坏硬件,你之前的顾虑是多余的。我们依然严格按照你提出的“单数组最多100个元素”的要求实现。
语言选择说明
我们用对初学者最友好的Python实现,全程只用基础语法,没有复杂嵌套结构、高级封装逻辑。
完整代码(带逐行注释)
# 打开同目录下的file.txt,自动关闭文件避免资源占用 with open("file.txt", "r", encoding="utf-8") as f: # 读取所有行,自动去掉每行末尾的换行符、首尾多余空格 lines = f.read().splitlines() # 读取第一行标注的数字总个数(仅做读取,不需要额外做校验逻辑,初学者无需处理异常) total_num = int(lines[0]) # 初始化临时列表,存放所有从第二行读到的有效数字 all_nums = [] for line in lines[1:]: # 跳过文件里可能存在的空行,避免程序报错 if line.strip(): all_nums.append(int(line.strip())) # 定义单个数组的最大元素数,按你的要求设为100 MAX_EVERY_ARR = 100 # 初始化列表,存放所有自动生成的子数组 all_arrays = [] # 循环按100步长切割数字列表,自动生成对应数量的子数组 for start_idx in range(0, len(all_nums), MAX_EVERY_ARR): # 从当前起始位置取最多100个数字,作为一个独立的子数组 current_arr = all_nums[start_idx : start_idx + MAX_EVERY_ARR] all_arrays.append(current_arr) # 结果验证的测试输出 print(f"自动生成了 {len(all_arrays)} 个符合要求的数组") print(f"第一个数组的内容为:{all_arrays[0]}")
逻辑说明
- 无需手动计算需要创建的数组数量:程序会根据实际读取到的数字总量自动拆分,比如总共有1050个数字时,会自动生成11个子数组(前10个各存100个元素,最后1个存剩余50个)
- 运行要求:只需要把
file.txt放在和代码文件同一个文件夹里,直接运行即可,不需要修改其他配置 - 后续调用方式:要使用某个子数组时,直接通过下标取值即可,比如第一个数组就是
all_arrays[0],第二个数组就是all_arrays[1]
内容的提问来源于stack exchange,提问作者Рик Plays
相关产品推荐
相关产品推荐

