Найти - Пользователи
Полная версия: Проблема с удалением элемента в списке. Бот Телеграм
Начало » Python для новичков » Проблема с удалением элемента в списке. Бот Телеграм
1
danker038
 @bot.message_handler(content_types= ['text'])
    def send_text(message):
        if list(message.text.lower())[0] == '~' and list(message.text.lower())[1] == '@':
                list_of_players.append(str(message.text))
        for i in list_of_players:
            to_show_list[i] = to_show_list.get(i, 0) + 1
        for key in list(to_show_list.keys()):
            if to_show_list[key] == 5:
                bot.send_message(message.chat.id, ('Дай этому ' + str(key) + ' бан!'))
                del to_show_list[key]
        for i in list_of_players:
            if i == key:
                list_of_ban.append(key)
#Последний блок
        for i in list_of_players:
            if i in list(set(list_of_ban)):
                for j in list_of_ban:
                    if i == j:
                        list_of_players.remove(i)
        to_show_list.clear()
Проблема заключается в следующем:
пользователь вводит юзернеймы, вида “@username”, когда кол-во введенных одинаковых юзеров достигнет 5, то нужно удалить его со списка, то есть онулить.
В частности, не могу нормально удалить юзернейм со списка list_of_players и словаря to_show_list.
Проблема в последнем блоке.
На второй раз удаления юзернейма, выдает ошибку ValueError: list.remove(x): x not in list
Кто может, выручите, второй день бьюсь в конвульсиях из-за этого
doza_and
В питоне принято создавать новый список

 list_of_players = [i for i in list_of_players if i not in list_of_ban]
Создавать set на каждой итерации плохая идея.

И вообще непонятно зачем вам списки. держите все в set тогда
 list_of_players -= list_of_ban

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB