Задать вопрос
@TanderOFF

Как перемешать список, после уже использовать?

Здраствуйте ! Хотел сделать мини игрушку для бота в дискорд , так добавили кнопки , можно придумать что-то интересное .
Ближе к делу:
Я сделал мини кортеж , и выполнил функцию рандома , что-бы уже этот список добавить в кнопки. Но результатата нечего не даёт , консоль пуста.
koloda = ['one' , 'two', 'tho' , 'four' , 'inv']
    pop = random.shuffle(koloda)


    text = str(koloda)

    bad_chars = ["'"] 


    for i in bad_chars : 
        test_string = text.replace(i, '') 

    intext = str(test_string)


    test = random.randint(1, 1)
    lous = random.randint(1, 10)

    one = Button(style = ButtonStyle.green, label = ' 1', id='1')
    two = Button(style = ButtonStyle.green, label = ' 2', id='2')
    tho = Button(style = ButtonStyle.green, label = ' 3', id='3')
    four = Button(style = ButtonStyle.green, label = '4 ', id='4')
    inv = Button(style = ButtonStyle.green, label = ' 5', id='5')


    embed1 = discord.Embed(description="Testing", color=0x7900ff)


    message = await ctx.channel.send(embed=embed1 , components=['{}'.format(intext)])

upd:
Нужно на выходе:
message = await ctx.channel.send(embed=embed1 , components=[[one , two, tho , four , inv]])
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой 10 комментариев
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
он фильтрует текст убирая символ
'
было: ['one' , 'two', 'tho' , 'four' , 'inv']
должно быть: [one , two, tho , four , inv]

Это так не работает. Вы не можете убрать кавычки и получить переменную из строки.

Не занимаюсь дискордом, но в документации нет упоминаний параметра «components». Ну, предположим, он есть. Если вы хотите эти кнопки отправить в случайном порядке, то сначала нужно их создать, затем добавить в список, перемешать и отправлять

one = Button(style = ButtonStyle.green, label = ' 1', id='1')
two = Button(style = ButtonStyle.green, label = ' 2', id='2')
tho = Button(style = ButtonStyle.green, label = ' 3', id='3')
four = Button(style = ButtonStyle.green, label = '4 ', id='4')
inv = Button(style = ButtonStyle.green, label = ' 5', id='5')

components = [one, two, tho, four, inv]
random.shuffle(components) # обратите внимание, что shuffle не возвращает новый список, а модифицирует оригинальный. 

message = await ctx.channel.send(embed=embed1 , components=components)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы