При вводе номера, почему элементы появляются из местоположения введенного номера вместо этого конкретного номера в списке? - PullRequest
0 голосов
/ 05 января 2019

В приведенном ниже коде, когда мы запускаем m.choose_slot() и вводим слот, вводя номер, он выталкивается из введенного местоположения вместо номера из самого списка, хотя в цикле for, который я упомянул i==b (итератор равен введенному номеру b). Я хочу, чтобы введенный номер был перенесен. P. Я новичок в Python, и я делаю это как часть моего первого проекта.

class Doctor():
    a=[0,1,2,3,4,5,6,7,8]
    def __init__(self,hours):
        self.hours=hours
        print("The doctor is Free for {} hours a day".format(self.hours))

    def scheduler(self):
        print("The available slots are:")
        for i in self.a:
            print(i)

d=Doctor(8)
d.scheduler()

class Patient(Doctor):
    def __init__(self):
        d.scheduler()

    def choose_slot(self):
        while True:
            try:
                b=int(input("Choose a slot from the given table: "))
                if b in range(1,8):
                    for i in self.a:
                        if i==b:
                            self.a.pop(b)
                            print("The slot is scheduled at {}".format(b))
                            return d.scheduler()
                            break
                    else:
                        return "The entered slot is not available!"
                        continue
            except:
                print("Please check your entry again")

m=Patient()
m.choose_slot()

1 Ответ

0 голосов
/ 05 января 2019

list.pop(i) удаляет i-й элемент списка по его индексу. Если вам нужно удалить элемент по значению, используйте метод list.remove(x).

>>> a = [10, 11, 12, 12]
>>> a.pop(1)
11
>>> a
[10, 12, 12]
>>> a.remove(12)
>>> a
[10, 12]

Некоторые ссылки:

https://docs.python.org/3/tutorial/datastructures.html

Есть ли простой способ удалить элемент списка по значению?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...