我有一个包含[车辆名称,编号]的列表
a=[["car","A1"],["car","A2"],["truck","A1"]]
我需要一个函数,如果我指定
汽车 它应该返回"A2"该车辆名称中的最后一个数字。 如果我指定自行车,它应该返回"A0">
我尝试编写一些东西,但总是得到一个超出范围的错误列表索引
编辑:
这是完整的列表格式
["vehicle","color","vehicle_num","status(True/False)","code"]
给出车辆和颜色,如果车辆,颜色不存在,则应找到最后vehicle_numreturn "A0"
数字系统从"A1",.........."An"开始
n 因车辆、颜色而异
列表已排序
使用字典
您可以利用以下事实dict
按顺序分配值list
这是一个有序集合。因此,对于列表列表中的重复键,最后一个映射仍然存在。
a = [["car","A1"], ["car","A2"], ["truck","A1"]]
d = dict(a)
print(d['car']) # A2
print(d['truck']) # A1
如果您之后需要恢复为list
(您不需要,因为您可以从字典写入 csv(。
res = list(map(list, d.items()))
print(res)
[['car', 'A2'], ['truck', 'A1']]
你可以使用这样的东西:
def search(l, word):
res = "A0"
for i in l:
if i[0] == word:
res
return res
然后,您可以通过将"An"保存为带有整数 n 的 A 的 Tupel 来优化它。
a = {'car':['A1', 'A2'], 'bike':['A0'], 'truck': ['A1']}
def return_last(vehicle):
return a[vehicle][-1]
return_last('car')