Как расположить inline кнопки в случайном порядке Aiogram

А возможно как то сделать что бы инлайн кнопки выводились в случайном порядке?
Делаю что-то типа теста и хотел бы перемешивать варианты ответов на инлайн кнопках


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

Автор решения: oleksandrigo

К примеру так.

@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    list_buts = [("text1", "data1"), ("text2", "data2"), ("text3", "data3")]
    random.shuffle(list_buts)
    markup = InlineKeyboardMarkup()
    for text, data in list_buts:
        markup.add(InlineKeyboardButton(text=text, callback_data=data))
    await message.answer("text", reply_markup=markup)

введите сюда описание изображения

→ Ссылка
Автор решения: Илья Смолев

Просидел весь день, дополню на будущее. В третьем aiogramm этот вариант не запустился, пришлось чуть изменить. Вот что получилось у меня в итоге, возможно его как то можно упростить, на это сил уже не хватило

     list_buts = [("text1", "data1"), ("text2", "data2"), ("text3", "data3")]
     random.shuffle(list_buts)
     but=[]
     for text, data in list_buts:
        but.append([InlineKeyboardButton(text=text, callback_data=data)])

     keyboard = InlineKeyboardMarkup(inline_keyboard=but)
     await message.answer("text",reply_markup=keyboard)
→ Ссылка