我正在为我的python类使用清单程序。它现在可以使用,但是我想知道是否有办法通过vin(而不是位置)删除和编辑车辆。任何建议都很棒!我尝试使用remove代替pop,但是它会给我一个Compare-Object
告诉我list.remove(x)= x不是列表。
ValueError
答案 0 :(得分:0)
使用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()
用于stacks,对于pop()
,您要在指定的索引处删除,如果未指定索引,则它将删除并返回列表中的最后一项:
myList = [1 , 2 , 3 , 4 , 5]
print(myList)
myList.pop(2)
print(myList)
输出:[1 , 2 , 4 , 5]
如果我理解您的问题是对的,则使用remove()
或pop()
是错误的处理方式,您可能想使用dictionary来简化操作如何通过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)