0

我是 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]]

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

非常感谢所有的帮助:)

4

1 回答 1

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]]
于 2021-04-01T19:53:09.110 回答