首页 > 解决方案 > 如何迭代一个范围,然后将列表中的项目附加到它?

问题描述

现在,在消息末尾添加反应的 for 循环需要number_of_responses,这就是我想要的。但我也希望根据e.add_field字段添加字段number_of_responses(连同字段中的正确表情符号,name然后将列表中的项目添加answers到他们value的 s 中)。

async def run_script(params):
    params = params
    channel = client.get_channel(<obfuscated>)
    emoji_numbers = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣"]
    question = params[0] # string
    answers = ast.literal_eval(params[1]) # list
    number_of_responses = len(answers) # int
    e = discord.Embed(title='Title', description='Desc.', color=discord.Color.blue())
    e.add_field(name=question, value='\u200b', inline=False)
    e.add_field(name='1️⃣', value='Mobiel', inline=False)
    e.add_field(name='2️⃣', value='Tablet', inline=False)
    e.add_field(name='3️⃣', value='Laptop', inline=False)
    e.add_field(name='4️⃣', value='Desktop', inline=False)
    e.add_field(name='5️⃣', value='TV', inline=False)
    message = await channel.send(embed=e)
    for i in range(number_of_responses):
        await message.add_reaction(emoji_numbers[i])
    for i in range(4, -1, -1):
        time.sleep(1)
    await channel.send("Going to sleep now")
    await client.close()

标签: pythondiscord.py

解决方案


无需循环索引。只是和:zip_answersemoji_numbers

for emoji, answer in zip(emoji_numbers, answers):
    e.add_field(name=emoji, value=answer, inline=False)
    await message.add_reaction(emoji)

推荐阅读