如何高效实现从文件中返回最小和最大整数的元组?
优化读取文件求最大最小整数的Python函数
你的代码虽然能正常运行,但存在重复IO操作的问题——两次打开并读取整个文件,既浪费系统资源也不够简洁。下面提供两种更高效优雅的实现方式:
方式一:一次性读取转换(适合中小文件)
一次性读取文件内容并转换为整数列表,直接调用内置的min()和max()函数,仅做一次IO操作,代码简洁直观:
def find_range(filename): with open(filename, 'r') as file: # 处理可能存在的空行,转换为整数列表 nums = [int(line.strip()) for line in file if line.strip()] return (min(nums), max(nums))
方式二:逐行遍历跟踪(适合大文件)
如果文件体积较大,不想把所有数据加载到内存中,可以逐行读取内容,实时更新当前的最小和最大值,内存占用极低:
def find_range(filename): with open(filename, 'r') as file: min_num = max_num = None for line in file: line_content = line.strip() # 跳过空行 if not line_content: continue current_num = int(line_content) # 初始化或更新最小值 if min_num is None or current_num < min_num: min_num = current_num # 初始化或更新最大值 if max_num is None or current_num > max_num: max_num = current_num return (min_num, max_num)
这两种方式都仅打开一次文件,避免了重复IO操作,代码结构也更清晰易读。
内容的提问来源于stack exchange,提问作者Sandi
相关产品推荐
相关产品推荐

