在2维python列表中搜索特定列中的最后一次出现

时间:2018-06-06 07:15:05

标签: python list

我有[车辆名称,号码]

的列表
a=[["car","A1"],["car","A2"],["truck","A1"]]

我需要一个函数,如果我指定

汽车它应该返回" A2"该车辆名称中的最后一个号码。 如果我指定自行车它应该返回" A0"

我尝试写一些东西,但不断收到错误列表索引

修改

这里是完整列表格式

["vehicle","color","vehicle_num","status(True/False)","code"]

如果车辆颜色不存在,则会给出车辆和颜色并找到最后的车辆号return "A0"

号码系统从" A1",.........." An"

开始

n根据车辆颜色而变化

列表已经排序

3 个答案:

答案 0 :(得分:2)

使用字典

您可以利用事实dict按顺序分配值,list是有序集合。因此,对于列表列表中的重复键,最后一个映射仍然存在。

a = [["car","A1"], ["car","A2"], ["truck","A1"]]

d = dict(a)

print(d['car'])    # A2
print(d['truck'])  # A1

如果您之后需要,则还原为list(您不能,write to csv from a dictionary)。

res = list(map(list, d.items()))

print(res)

[['car', 'A2'], ['truck', 'A1']]

答案 1 :(得分:0)

您可以使用以下内容:

def search(l, word):
    res = "A0"
    for i in l:
        if i[0] == word:
            res
    return res

然后,您可以通过将“An”保存为带有整数n的A的Tupel来优化它。

答案 2 :(得分:-1)

a = {'car':['A1', 'A2'], 'bike':['A0'], 'truck': ['A1']}

def return_last(vehicle):
  return a[vehicle][-1]

return_last('car')