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

Python循环编号问题:如何为排序后字典项添加递增序号

解决Python循环序号递增问题

原代码的问题在于循环内部每次将num重置为1,导致所有项的序号都固定为1。要实现从1开始的递增序号,有两种简单可行的方法:

方法一:使用enumerate函数(推荐)

enumerate可以直接在循环中获取从指定起始值开始的序号,无需手动维护计数器,代码更简洁:

TopList = {'1350180828': 3, '1670937087': 2, '0743180828': 1, '9864937087': 8}

meg = "Top Referral List\n"
sort = sorted(TopList.items(), key=lambda x: x[1], reverse=True)

# enumerate的start参数设为1,让序号从1开始
for num, info in enumerate(sort, start=1):
    userlink = f'<a href="tg://user?id={info[0]}">{info[0]}</a>'
    meg += f"\n{num} {userlink} - 👨{info[1]}\n"
    # 取前10项后停止循环
    if num >= 10:
        break
print(meg)

方法二:手动维护计数器

将num的定义移到循环外部,每次循环结束后让序号自增1:

TopList = {'1350180828': 3, '1670937087': 2, '0743180828': 1, '9864937087': 8}

meg = "Top Referral List\n"
sort = sorted(TopList.items(), key=lambda x: x[1], reverse=True)

num = 1  # 初始化序号为1
for info in sort:
    userlink = f'<a href="tg://user?id={info[0]}">{info[0]}</a>'
    meg += f"\n{num} {userlink} - 👨{info[1]}\n"
    if num >= 10:
        break
    num += 1  # 每次循环后序号加1
print(meg)

两种方法都能输出符合预期的结果:

Top Referral List

1 9864937087 - 👨8

2 1350180828 - 👨3

3 1670937087 - 👨2

4 0743180828 - 👨1

内容的提问来源于stack exchange,提问作者NgVtu Bot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:50:37