Генерация случайных ссылок без повторений

Я создаю своего бота для магазина в тг с pytelegrambotapi Подскажите пожалуйста как сделать так что б при нажатии на кнопку бот выдавал рандомную ссылку и не повторялся. Буду очень благодарен если напишете от а до я


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

Автор решения: Иван Ипатов
import random

urls = ['youtube.com', 'stackoverflow.com', 'google.com']
@bot.message_handler(
    func=lambda message: message.text.lower() == "ссылка")
    # метод choice просто выбирает любой элемент
    bot.send_message(message.chat.id, random.choice(urls))  
    # без повторов
    if len(urls) != 0:
        i = random.randint(0, len(urls)-1) # возьмём рандомный индекс
        # отправляется рандомная ссылка по индексу i и удаляется
        # элемент по этому индексу из списка
        bot.send_message(message.chat.id, urls.pop(i)) 
    
    else:
        bot.send_message(message.chat.id, "ссылок нет")

Предупреждаю, если вы не задействуете что-то вроде баз данных, то один пользователь сможет просмотреть все ссылки, а другой уже нет.

→ Ссылка