Как разбить сообщение на 2 части циклом python

Есть функция которая собирает 50 пользователей в формате "1. [Ник]: [кол-во сообщений]" с базы данных в одно сообщение:

def global_top(self, chatid):
   sql.execute("SELECT userid, nick, SUM(messages) FROM users GROUP BY userid ORDER BY SUM(messages) DESC")
   asd = sql.fetchmany(50)

   full_message = "TOP-50: \n"

   for i, tup in enumerate(asd, 1):
        full_message += f'{i}. {tup[1]}: {tup[2]}\n'
   subclient.send_message(chatId=chatid, message=full_message)

Нужно разбить топ-50 на 2 сообщения по 25 мест не нарушая нумерацию.


Ответы (1 шт):

Автор решения: cauf
first25 = [f'{i}. {tup[1]}: {tup[2]}' for i, tup in enumerate(asd[:25], 1)]
others = [f'{i}. {tup[1]}: {tup[2]}' for i, tup in enumerate(asd[25:], 1)]

f25_msg = '\n'.join(first25)
oth_msg = '\n'.join(others)

Не самый элегантный способ из-за дублирования кода, но он должен сработать

Обратите внимание, что в 1 и 2 строке отличаются индексы срезов списка asd

→ Ссылка