如何用Python优化读取彩票数据文件中各月份号码的代码?
优化彩票号码按月提取的Python代码
你的代码确实存在扩展性差的问题——每次新增月份都要手动创建新的列表变量和开关布尔值,重复劳动还容易出错。其实根本不需要“自动生成变量”,用字典就能完美解决这个问题,既简洁又易维护。
优化思路
用一个字典来存储所有月份的号码数据:
- 字典的键是月份名称(比如"January"),值是对应月份的号码列表
- 用一个变量跟踪当前正在处理的月份,替代原来的多个布尔开关
- 动态处理月份,新增月份无需修改代码结构
优化后的代码
month_tipps = {} current_month = None for line in wholefile: line_stripped = line.strip() # 跳过空行 if not line_stripped: continue # 判断是否是月份行(以冒号结尾) if line_stripped.endswith(':'): # 提取月份名称(去掉末尾的冒号) current_month = line_stripped.rstrip(':') # 初始化该月份的空列表 month_tipps[current_month] = [] elif current_month is not None: # 将行内的字符串转成整数数组,添加到对应月份的列表 numbers = [int(num) for num in line_stripped.split()] month_tipps[current_month].append(numbers)
代码优势
- 扩展性极强:不管以后要处理多少个月份,代码结构不用改,新增月份会自动被识别并存储
- 逻辑更清晰:用
current_month跟踪当前处理的月份,替代一堆布尔变量,可读性大幅提升 - 数据更规整:直接得到
{"January": [...], "February": [...], ...}的字典结构,后续处理数据更方便
比如你要获取1月的号码,直接用month_tipps["January"]就行,和你原来的jan_tipps效果一样,但灵活性高得多。
内容的提问来源于stack exchange,提问作者R.Mayer
相关产品推荐
相关产品推荐

