Проблема вот в чем, есть база определенных слов к примеру
keys = { 0: {'name': 'keys_hello', 'keys': { u'привет', u'здравствуйте', u'ку', u'здрасте', u'куку', }, 'answers': { u'Приветствую вас' }, 'type': { u'0', }, }, 1: {'name': 'keys_zachety', 'keys': { u'зачеты', u'когда зачет', u'когда зачеты', u'какие зачеты', u'список зачетов 1 курс', u'список зачетов', }, 'answers': { u"Зачеты 1 курс, 2 курс, 3 курс, 4 курс", }, }, 1: {'name': 'keys_nomer', 'keys': { u'1', u'2', u'3', u'4', u'5', }, 'answers': { u"выбрали номер", }, }, }
и обработчик команд
text= 'список зачетов 1 курс' words = text.split() unknow = 1 for word in range(len(words)): for i in range(len(keys)): if words[word].lower() in keys[i]['keys']: print = random.sample(keys[i]['answers'], 1)
проблема сама в том, что при вводе команды “список зачетов 1 курс” присылает ответ не “Зачеты 1 курс, 2 курс, 3 курс, 4 курс”, а берет значение из keys_nomer команда 1 присылает “выбрали номер”, также если написать “привет какие зачеты” пришлет 2 сообщения “Приветствую вас” и “Зачеты 1 курс, 2 курс, 3 курс, 4 курс”.
я так понимаю все из-за text.split() так как он разбивает слова и ищет уже из списка, просто при вводе одинакового слова будут отправляться все команды с этим словом, мне нужно чтобы он выполнял конкретную команду, подскажите пожалуйста, что можно с этим сделать, за ранее благодарю