如何拆分列表并将其打印在单独的行中?

时间:2019-07-19 12:10:05

标签: python string list printing split

您好,这是我的Telegram机器人代码,我有一个按名称填充的列表。 机器人将用户名添加到列表中并作为列表进行回复 我想用单独的行回复每个名字

list = []
txt = str(list)


def msg_filter(bot , update):
wordsp = ["man"," miam"]
wordsn = ['nemiam','nistam','na']

if len(list) <=15:

    if any (i in update.message.text for i in wordsp):

        if "{}".format(update.message.from_user.first_name) not in list:
            list.append("{}".format(update.message.from_user.first_name))
            bot.send_message(chat_id = update.message.chat_id , text = "{}".format(list))

我在输出中有这个内容:['username1','username2','username3']

但希望如此:

[username
usernam2
username3]

4 个答案:

答案 0 :(得分:2)

您可以使用:

 print('\n'.join(list))
 # please do not name your list "list", list is a build-in function !!!

答案 1 :(得分:1)

text =“ [{}]”。format(“ \ n” .join(lst))

答案 2 :(得分:1)

如果要输出以换行符分隔的列表,则可以使用#join并将换行符(\n)用作列表条目的分隔符。

例如:

bot.send_message(chat_id = update.message.chat_id , text = "\n".join(list))

它将输出:

username1
username2
username3

如果您还明确希望同时输出[],则可以使用format添加它们:

text = "[\n{}\n]".format("\n".join(list))
bot.send_message(chat_id = update.message.chat_id , text = text)

答案 3 :(得分:1)

如果您需要确切的结果而不带引号:

    [username1
    usernam2
    username3]

尝试这个简单的解决方案:

    print(f'[{list_[0]}')
    for l in list_[1:-2]:
        print(l)
    print(f'{list_[-1]}]')

其中list_ = ['username1','username2','username3']