Я новичок в программировании и только что закончил курс первого курса для UNI. Рассматривая последние детали моей курсовой работы, я столкнулся с проблемой, на которую пока не нашел ответа о переполнении стека.
У меня есть список с именем cL (coloursList), и я пытаюсь удалить один элемент из этого списка, элемент, который содержится в переменной с именем "colour2", которая вводится пользователем через оболочку с помощью "ввода" метод.
Я нашел способы удаления элементов из списка, используя list.remove (x) или list.pop (x), ссылаясь на сам элемент (предоставляя имя элемента в виде строки) или позицию индекса элемента в списке.
Вот так выглядит фрагмент кода, с которым я работаю:
# more code before this
cL = ["red", "green", "blue", "magenta", "orange", "pink"]
elif colour2 == colour1:
cL = cL.remove(colour2)
print("\nPlease select a different colour than previous one:\n", cL)
colour2 = str(input("Please re-enter second colour: "))
# more code to follow
По сути, я пытаюсь добиться того, чтобы, когда пользователь вводит 2-й или 3-й цвет, который ему предлагается в оболочке, если он вводит цвет, который ранее использовал в списке, я пытаюсь удалить этот цвет из списка, затем представьте новый исправленный список пользователю, чтобы он знал, какие цвета он оставил на выбор.
Очевидно, что этот фрагмент кода, который я пробовал, не работает
cL = cL.remove(colour2)
И я пытаюсь выяснить, какие есть варианты в достижении этой задачи.
Большое спасибо!
******* ОБНОВЛЕНИЕ, СОДЕРЖАЩЕЕ полный код (для любопытных людей) *******
******* Задание выполнено с помощью сообщества STACK OVERFLOW *******
cL = ["red", "green", "blue", "magenta", "orange", "pink"]
print("\nAvailable colours to choose from:\n", cL)
colour1 = str(input("Please enter FIRST colour: ")).lower()
while True:
if colour1 not in cL:
print("\nInvalid colour.\nPlease choose a colour from list:\n", cL)
colour1 = str(input("Please re-enter a valid FIRST colour: "))\
.lower()
else:
cL.remove(colour1)
break
print("\nGREAT WORK! Remaining valid colours to choose from are:\n", cL)
colour2 = str(input("Please enter SECOND colour: ")).lower()
while True:
if colour2 not in cL:
print("\nInvalid colour.\nPlease choose a colour from list:\n", cL)
colour2 = str(input("Please re-enter a valid SECOND colour: "))\
.lower()
else:
cL.remove(colour2)
break
Так выглядит мой законченный код подтверждения ввода цвета (для первого и второго цветов). Подумал, что это может помочь кому-то, кто имеет подобную задачу, чтобы выполнить в будущем.
* Ввод цвета может быть [нижний регистр], [ВЕРХНИЙ СЛУЧАЙ] или [A MiX oF bOtH], и если пользователь не выберет один из представленных ему цветов перед выбором любого из цветов, он застрянет в цикл с просьбой выбрать правильный цвет из представленного списка.