Как разбить сообщение на 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