我是 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]]
如果不在里面,应该跳过。
非常感谢所有的帮助:)
答案 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]]