基于ele合并两个列表列表

时间:2021-03-30 12:53:52

标签: python list nested-lists list-comparison

我是 Python 新手,需要一些帮助: 我有以下列表列表

FirstList = [[joe, 12-mar, 2101],[mike, 13-mar, 2102],[mario, 15-mar, 2103]]
SecondList = [[2524, joe],[2786, mike]]

我想将这两个嵌套列表按名称与以下内容进行比较:

如果第一个列表中存在第二个列表中的名称,则输出应为:

[[joe, 12-mar, 2101, 2524],[mike, 13-mar, 2102, 2786]]

如果不在里面,应该跳过。

非常感谢所有的帮助:)

1 个答案:

答案 0 :(得分:0)

假设列表始终遵循您提供的格式,您可以这样做:

FirstList = [['joe', '12-mar', 2101],['mike', '13-mar', 2102],['mario', '15-mar', 2103]]
SecondList = [[2524, 'joe'],[2786, 'mike']]

namesMap = {entry[0]: i for i, entry in enumerate(FirstList)}

mergedList = [
        [
            entry[1], 
            FirstList[namesMap[entry[1]]][1],
            FirstList[namesMap[entry[1]]][2],
            entry[0]
        ]
        for entry in SecondList if entry[1] in namesMap
    ]

print(mergedList) # [['joe', '12-mar', 2101, 2524], ['mike', '13-mar', 2102, 2786]]
相关问题