我想让我的信息看起来像:
禁令名单: ·用户1 ID (用户1 Name#User 1鉴别器) ·用户2 ID (用户2 Name#User 2鉴别器) ·用户3 ID (用户3 Name#User 3鉴别器)
我已经在列表格式中获得了用户的id、名称和鉴别器,只是不知道如何使其格式正确。我已经和.format和.join混了很长一段时间了,但是我想不出如何在没有每一条新的数据的情况下按正确的顺序得到它。
作为参考,这就是我的代码现在的样子:
userid = ['User 1 ID', 'User 2 ID', 'User 3 ID']
name = ['User 1 Name', 'User 2 Name', 'User 3 Name']
discriminator = ['User 1 Disc', 'User 2 Disc', 'User 3 Disc']
total = list(chain.from_iterable(zip(userid, name, discriminator)))
await client.send_message(message.channel, "**Ban List:** \n •<@{}>".format(">\n• <@".join(total)))这一产出如下:
禁令名单: @User 1 ID ·<@用户1 Name> ·<@用户1 Disc> @User 2 ID ·<@User 2 Name> ·<@User 2 Disc> @User 2 ID ·<@User 2 Name> ·<@User 2 Disc>
发布于 2018-07-31 04:56:55
试试下面的代码,它不是单数,但我想它更易读
userid = ['User 1 ID', 'User 2 ID', 'User 3 ID']
name = ['User 1 Name', 'User 2 Name', 'User 3 Name']
discriminator = ['User 1 Disc', 'User 2 Disc', 'User 3 Disc']
total = list((zip(userid, name, discriminator)))
# reformat the code into the desired formatting
pretty_list = set()
for details in total:
data = "•<@{} ({}#{})>".format(details[0], details[1], details[2])
pretty_list.add(data)
# debug print below
# print("**Ban list:** \n{}".format("\n".join(pretty_list)))
await client.send_message(message.channel, "**Ban list:** \n{}".format("\n".join(pretty_list)))古德勒克:)
发布于 2018-07-31 04:25:47
您可以尝试以下代码:
userid = ['User 1 ID', 'User 2 ID', 'User 3 ID']
name = ['User 1 Name', 'User 2 Name', 'User 3 Name']
discriminator = ['User 1 Disc', 'User 2 Disc', 'User 3 Disc']
total = zip(userid, name, discriminator)
await client.send_message(message.channel, "**Ban List:** \n{}".format("\n".join(["• {}".format(" ".join(list(item))) for item in total])))发布于 2018-07-31 06:08:27
这里有一个单线(ish)解决方案:
userid = ['User 1 ID', 'User 2 ID', 'User 3 ID']
name = ['User 1 Name', 'User 2 Name', 'User 3 Name']
discriminator = ['User 1 Disc', 'User 2 Disc', 'User 3 Disc']
#convert [['a1', 'a2'], ['b1', 'b2']] to iter([('a1', 'b1'), ('a2', 'b2')])
total = zip(userid, name, discriminator)
await client.send_message(message.channel, "**Ban List:**\n"
+ "\n".join("• {} ({}#{})".format(*i) for i in total))产出应是:
禁令名单: ·用户1 ID (用户1 Name#User 1光盘) ·用户2 ID (用户2 Name#User 2光盘) ·用户3 ID (用户3 Name#User 3光盘)
https://stackoverflow.com/questions/51605270
复制相似问题