如何在Discord单条消息中发送for循环结果及字典值列表?
如何在单条Discord消息中发送字典值的列表?
没问题!你现在遇到的问题是循环调用ctx.send()导致每条值发一条独立消息,要解决这个只需要先把所有字典值整合成一个带换行的单一字符串,再一次性发送就好。
解决方案代码
直接修改你的list命令,用字符串拼接的方式把所有值合并:
@bot.command() async def list(ctx): # 用换行符将所有客人值拼接成一个字符串 guest_list = '\n'.join(guests.values()) # 组合提示文本和列表,发送单条消息 await ctx.send(f"List of guests:\n{guest_list}")
细节说明
'\n'.join(guests.values()):这个方法会遍历guests字典的所有值,把每个值用换行符\n连接起来,最终生成一个每个值单独占一行的字符串。- 如果你字典里的值不是字符串类型(比如数字、自定义对象),记得先转成字符串,避免报错:
guest_list = '\n'.join(str(v) for v in guests.values())
这样发送出来的消息效果会是:
List of guests:
Alice
Bob
Charlie
完全符合你要的“每个值单独一行、不带引号、无字典标识”的要求~
内容的提问来源于stack exchange,提问作者Djarrah
相关产品推荐
相关产品推荐

