Вывод списка python в одном сообщении выполнив перенос на новую строку определенных элементов списка
Есть телеграм бот который я начал писать для записи тренировок. Есть функция https://github.com/nikolaynovikov1989/MyTrainBot/blob/release/server.py#L143 Которая берет каждое упражнение из списка all_list
all_list=["жим лежа","жим гантелей стоя","жим гантелей сидя","подьем ног","подъем ног в висе","подъем гантелей на бицепс","французский жим","подьем штанги на бицепс","выпады","скручивания","подтягивания","становая","приседания с гантелями","гиперэкстензия","разведение гантелей лежа","разведение гантелей стоя","разведение гантелей в стороны","жим гантелей лежа","жим гантелей лежа на наклонной скамье","приседания со штангой","разгибание рук с гантелями в наклоне","блок на трицепс","тяга верхнего блока","жим штанги сидя из-за головы","наклоны с гантелями","подъем на носки","жим ногами","жим гантелей сидя 90","жим гантелей сидя 60","жим гантелей сидя 30","жим гантелей сидя 45"]
получает по нему из базы максимальные значения и добавляет ее в список all_record который я вывожу в сообщении в телеграм
def records(exersise_codename):
con = sqlite3.connect("db/db.db")
cur = con.cursor()
res = cur.execute("SELECT exersisename from exercises where aliases like ?", ('%' + exersise_codename + '%',))
base_result = res.fetchone()
codename = base_result[0]
res= cur.execute("SELECT max(weight),created from workout where exersise_codename like ?",(codename,)).fetchone()
return res
async def record(update: Update, context: ContextTypes.DEFAULT_TYPE):
all_record = []
for i in all_list:
record = records(i)
rec_weight=(record[0])
rec_date=(record[1])
all_record.append(i)
all_record.append(rec_weight)
all_record.append(rec_date)
await update.message.reply_text( f"{all_record}" )
Сейчас это выглядит так
Никак не могу понять как вывести в одном сообщении этот список вот таким образом как на фото
То есть требуется отобразить список в одном сообщении выполнив перенос строк после определенного элемента списка(в данном случае после каждого третьего элемента из списка)
Ответы (1 шт):
- Список было бы удобней делать не плоским, а списком структур:
[
{ "title": "жим лежа", "count": 50, "date": "2015-09-23" },
{ "title": "подъем ног" ...
]
- Разобраться, какой формат сообщения -- текст, HTML и т. п.
- Разобраться, как преобразовать список в этот формат перед посылкой -- шаблон, map/join и т. п.
Например:
all_record.append({"title": i, "weight": rec_weight, "date": rec_date})
...
reply_text("\n".join(f'{r["title"]} | {r["weight"]} | {r["date"]}' for r in all_records))