Я адаптировал функцию для решения проблемы в своем проекте, но не совсем понимаю, как она работает. Кстати, список пользователей хранится в self.__users, он читается из users.txt.
def delete(self, nick):
for x, u in enumerate(self.__users): # <----- Just this line
if u._nickname == nick:
del self.__users[x]
return
Означает ли это, что он будет разделять каждого пользователя и давать ему номер? Я не понимаю эту строчку.
И если вы можете запустить код, просто добавьте строку print( x, u )
с отступом ниже строки for.
Enumerate генерирует две переменные из массива, Первый — это индекс элемента массива, второй — сам его элемент. Таким образом, для массива ['x', 'y', 'z'] начальные значения этих переменных будут равны 0 и 'x' соответственно.
enumerate
возвращает кортеж, где первый элемент является индексом, а второй элемент — текущим значением из итерации. Таким образом, переключение использования x
и u
, как вы предложили, неверно.
Да... встроенная функция enumerate
создаст список примерно так:
[(0, user1),
(1, user2),
(2, user3)]
Обратите внимание, что я не знаю никакой информации о вашем self.__users
, поэтому я так говорю....
Таким образом, эта строка for x, u in enumerate(self.__users):
будет возвращаться для x
индекса и для u
вашего пользователя.
Надеюсь, это помогло
В Как отвечать см. раздел «Ответы на часто задаваемые вопросы», а в нем пункт списка вопросов, которые «задавались и на которые уже много раз отвечали».
@CharlesDuffy спасибо... Я прочитаю это и постараюсь сделать лучше в следующий раз
Я думаю, это может помочь geeksforgeeks.org/enumerate-in-python