通过键删除和编辑值

时间:2019-03-03 20:59:25

标签: python

我正在为我的python类使用清单程序。它现在可以使用,但是我想知道是否有办法通过vin(而不是位置)删除和编辑车辆。任何建议都很棒!我尝试使用remove代替pop,但是它会给我一个Compare-Object告诉我list.remove(x)= x不是列表。

ValueError

1 个答案:

答案 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)