You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对数字文件排序并按前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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:23:22