我有这样的情况:

mainList = [[9,5],[17,3],[23,1],[9,2]]
secondaryList = [9,12,28,23,1,6,95]
myNewList = []

myNewList.append([[a,b] for a,b in mainList if a in secondaryList])


将此,还给我:

myNewList = [[9,5],[23,1],[9,2]]


但我只需要第一次使用“ a”。换句话说,我需要获得:

myNewList = [[9,5],[23,1]]


我该如何实现?

最佳答案

首先:

myNewList = []
myNewList.append([[a,b] for a,b in mainList if a in secondaryList])


只是和

myNewList = [[a,b] for a,b in mainList if a in secondaryList]


然后:
您正在构建的功能上是python字典。您在mainList中的两个元素列表与dict.items()相同!

因此,您要做的是在dict之外构建一个mainList(将其反转,因为通常,您只保存最后一个,而不是第一次出现):

mainDict = dict([reversed(mainList)])


然后,您只需创建新列表:

myNewList = [ (key, mainDict[key]) for key in secondaryList ]

10-06 00:53