В псевдоклассических терминах многие лекции учат ключевое слово «this» как объект, созданный конструктором класса или объекта. Каждый раз, когда новый объект строится из класса, представьте, что под капотом создается и возвращается локальный экземпляр «этого» объекта. Я помню, как он учил так:
function Car(make, model, year) {
var this = {}; // under the hood, so to speak
this.make = make;
this.model = model;
this.year = year;
return this; // under the hood
}
var mycar = new Car('Eagle', 'Talon TSi', 1993);
// ========= under the hood
var this = {};
this.make = 'Eagle';
this.model = 'Talon TSi';
this.year = 1993;
return this;
Причина, по которой вы получаете ValueError
с remove()
, заключается в том, что он удаляет и элемент за значением, что означает, что вводимое значение отсутствует в списке:
myList = [1 , 2 , 3 , 4 , 5]
myList.remove(2)
print(myList)
Вывод: [1 , 3 , 4 , 5]
myList = [1 , 2 , 3 , 4 , 5]
print(myList)
myList.remove(20)
print(myList)
Вывод:
Traceback (most recent call last):
File "main.py", line 77, in <module>
myList.remove(20)
ValueError: list.remove(x): x not in list
Кроме того, pop()
используется для стеков , при этом pop()
вы удаляете по указанному индексу , если индекс не указан, он удаляет и возвращает последний элемент в списке:
myList = [1 , 2 , 3 , 4 , 5]
print(myList)
myList.pop(2)
print(myList)
Вывод: [1 , 2 , 4 , 5]
Если я понимаю, что вы правы, использование remove()
или pop()
- неправильный способ для этого, вы можете вместо этого использовать словарь , упрощенный пример того, как удалять по значению через VIN #, будет выглядеть примерно так:
def removeVin(vinNumbers, key):
del vinNumbers[key]
vinNumbers = {'VIN01' : 1200 , 'VIN02' : 1500 , 'VIN03' : 1700} # Where Key is 'VIN0X' and Value is Price
removeVin(vinNumbers , 'VIN03')
print(vinNumbers)
Чтобы запросить у пользователя VIN, он может выглядеть примерно так:
def removeVin(vinNumbers, key):
del vinNumbers[key]
vinNumbers = {'VIN01' : 1200 , 'VINO2' : 1500 , 'VIN03' : 1700}
removeVin(vinNumbers , input("Enter VIN:"))
print(vinNumbers)
Аналогично для редактирования:
def editVin(vinNumbers, key):
vinNumbers[key] = 1500
vinNumbers = {'VIN01' : 1200 , 'VINO2' : 1500 , 'VIN03' : 1700}
editVin(vinNumbers , input("Enter VIN:"))
print(vinNumbers)