首页 > 解决方案 > 如何在单个不和谐消息中发送 for 循环的结果?

问题描述

我想以类似于for循环可以打印的方式打印字典中的值列表。到目前为止,我已经能够这样做,制作一个for循环ctx.send(v),但它以不同的不和谐消息发送结果。

@bot.command()
async def list(ctx):
    await ctx.send("List of guests:")
    for v in guests.values():
        await ctx.send(v)

有没有办法在一条不和谐的消息中打印列表?ctx.send 只接受字符串,甚至 f 字符串也无济于事。为了记录:我希望每个值都在单独的行中,没有“”,并且没有任何文本表明这是一个字典。

标签: pythondiscord.py

解决方案


首先,list作为函数名不好使用,因为它会影响内置函数list()

函数send()作为第一个参数(contentstr期望值,因此您可以使用str.join()将所有值连接到一个字符串中并将其传递给函数。代码:

@bot.command()
async def list(ctx):
    await ctx.send("List of guests:\n" + "\n".join(guests.values()))

推荐阅读