我还在学习Python,我有一个问题。如果我的问题不是很清楚,请友善点!你知道吗
在使用列表时,如果只有一个对象匹配,是否可以从列表中删除一个对象
例如:
driver.addDriver(Driver("Ben", "BBB"))
driver.removeDriver("Ben", "123")
我是否可以删除驾驶员姓名并打印为无,同时仍显示车号。谢谢。你知道吗
class Driver:
def __init__(self, name, vehNo):
self._name = name
self._vehNo = vehNo
@property
def name(self):
return self._name
@property
def vehNo(self):
return self._vehNo
@vehNo.setter
def vehNo(self, newVehNo):
self._vehNo = newVehNo
def __str__(self):
return 'Driver Name: {} Vehicle Number: {}'.format(self._name, self._vehNo)
class TransportServices:
def __init__(self):
self._drivers = []
def searchDriver(self, name = None, vehNo = None):
for d in self._drivers:
if d.name == name and d.vehNo == vehNo:
return d
return None
#############################################################################
def addDriver(self, driver):
d = self.searchDriver(driver.name)
if d is None:
self._drivers.append(driver)
return True
else:
return False
#############################################################################
def removeDriver(self, name = None, vehNo = None):
d = self.searchDriver(name, vehNo)
if d is None:
return False
else:
self._drivers.remove(d)
#############################################################################
def __str__(self):
drivers = [str(d) for d in self._drivers]
return "{} ".format('\n'.join(drivers))
def main():
driver = TransportServices()
driver.addDriver(Driver("Alan", "AAA"))
driver.addDriver(Driver("Ben", "BBB"))
driver.removeDriver("Ben", "123")
print(driver)
main()
基本上你要找的不是删除对象而是更新它。你知道吗
您可以按如下方式更新相应的对象:
对你来说, 你宁愿用同样的字典 作为Java中的散列映射。你知道吗
您可以执行以下操作:
你知道吗自行驾驶={}
你知道吗自动驾驶['vehicle Num']=驱动程序对象
因此,当您需要访问或更新时,您可以立即执行,即O(1),而不必遍历所有驱动程序。你知道吗
相关问题 更多 >
编程相关推荐