如何对数字文件排序并按前4位归类存储末尾数字?
解决方案:按数字前4位分组并归类末尾数字
你的现有代码仅收集了所有数字的末尾位,没有按前4位做分组归类。要实现目标,我们需要用字典来按前4位作为键,存储对应组的末尾数字列表,最后再按指定格式输出。
修改后的代码如下:
#!/usr/bin/env python3 # 打开文件读取数字 with open('number-file.txt', 'r') as file: numbers = file.readlines() # 初始化字典,键为前4位数字字符串,值为对应末尾数字的列表 grouped_last_digits = {} for number_line in numbers: # 去除换行和空格,确保是纯数字字符串 number_str = number_line.strip() if not number_str: continue # 跳过空行 # 提取前4位(不足4位时前面补0,若你的数字都是4位及以上可去掉zfill(4)) prefix = number_str[:4].zfill(4) # 提取末尾数字 last_digit = number_str[-1] # 将末尾数字添加到对应分组的列表中 if prefix not in grouped_last_digits: grouped_last_digits[prefix] = [] grouped_last_digits[prefix].append(last_digit) # 按要求格式输出结果 for prefix, digits in grouped_last_digits.items(): # 将列表里的数字拼接成字符串 digits_str = ''.join(digits) print(f"{prefix}[{digits_str}]")
关键说明:
- 用字典
grouped_last_digits实现分组,键是数字的前4位字符串,确保相同前缀的数字会被归到同一组 - 处理数字时转为字符串,方便直接截取前4位和末尾位,比取模运算更直观(尤其适配可能包含非纯数字格式的场景)
- 跳过空行避免报错,增强代码健壮性
- 输出时把每个组的末尾数字拼接成字符串,直接输出
前缀[末尾数字串]的格式
内容的提问来源于stack exchange,提问作者Chris Fritz
相关产品推荐
相关产品推荐

