排行榜discord.py的问题

排行榜discord.py的问题,discord.py,Discord.py,排行榜显示相同的用户名,即使他们是不同的用户,以防他们具有相同的值。 我不知道如何解决它,但在代码中,当我要求抵制一个变量时,它只给我3个元素,而不是4个元素,即使4个出来。 代码: @client.command(别名=[“lb”]) 异步def排行榜(ctx,x=10): 领导委员会={} 总计=[] 对于系统中的用户: name=int(用户) 总金额=经济型系统[用户][“钱包”]+经济型系统[用户][“银行”] 领导委员会[总金额]=名称 总计。追加(总金额) 打印(引线板) 总计=

排行榜显示相同的用户名,即使他们是不同的用户,以防他们具有相同的值。 我不知道如何解决它,但在代码中,当我要求抵制一个变量时,它只给我3个元素,而不是4个元素,即使4个出来。

代码:

@client.command(别名=[“lb”])
异步def排行榜(ctx,x=10):
领导委员会={}
总计=[]
对于系统中的用户:
name=int(用户)
总金额=经济型系统[用户][“钱包”]+经济型系统[用户][“银行”]
领导委员会[总金额]=名称
总计。追加(总金额)
打印(引线板)
总计=已排序(总计,反向=真)
嵌入=不和谐。嵌入(
title=f“最富有的人”,
description=“这取决于银行和钱包中的原始资金”,
颜色=0x003399
)
索引=1
总金额:
id=领导委员会[amt]
成员=客户端。获取用户(id)
name=member.name
印刷品(名称)
embed.add_字段(
name=f“{index}.{name}”,
值=f“{amt}”,
内联=假
)
如果索引==x:
打破
其他:
指数+=1
等待ctx.send(嵌入=嵌入)
“打印”可以抵抗这种情况:

{100: 523967502665908227, 350: 554617490806800387, 1100: 350886488235311126}
Padre Mapper
Flore (Orsolinismo)
Aetna
Aetna

理论上也应该有
100:488826524791734275
(即我的用户id),但它找不到它。

您的问题来自这一行:

leader\u board[总金额]=姓名
如果
total\u amount
已经是一个键(例如,两个用户拥有相同数量的钱),它将替换以前的值(这是一个用户ID),并将其替换为另一个用户ID。在这种情况下,如果多个用户拥有相同数量的钱,则只有一个将保存在
leader\u board

那么,你有这一行:

total.append(总金额)
在这种情况下,如果两个用户拥有相同金额的钱,您将只拥有两个相同的值,这是正常的,但考虑到上述问题,这将产生一个转移

假设你有十个用户,其中两个用户的钱是一样的<代码>导板仅包含9个项目,而
总计
将包含10个值。这就是为什么你的邮件中有两个名字相同的人

要解决这个问题:

@client.command(别名=[“lb”])
异步def排行榜(ctx,x=10):
d={user_id:info[“wallet”]+info[“bank”]对于用户_id,经济系统中的信息。items()}
排行榜={user\u id:amount for user\u id,amount in sorted(d.items(),key=lambda item:item[1],reverse=True)}
嵌入=不和谐。嵌入(
title=f“最富有的人”,
description=“这取决于银行和钱包中的原始资金”,
颜色=0x003399
)
对于索引,枚举中的信息(leadboard.items()):
用户id,金额=信息
成员=客户端。获取用户(用户id)
embed.add_字段(
name=f“{index}.{member.display_name}”,
值=f“{amount}”,
内联=假
)
等待ctx.send(嵌入=嵌入)
如果我猜对了,并且你的措辞是这样组织的,那么它应该会起作用:

economy\u系统={
用户id:{“银行”:x,“钱包”:y}
}

我写了一条关于我的问题的评论,但一直在试图解决它,我做到了!实际上,它不适用于我,因为它无法将用户id视为整数,并且无法识别项目(必须是项目)。我想问你一个问题,是否有可能得到一个答案,即是否有可能通过做“lb 2”来获得从第11位到第20位的位置?