jul*_*jul 4 list append python-3.x
我有这样一个场景:
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])
Run Code Online (Sandbox Code Playgroud)
这个,把我还给我:
myNewList = [[9,5],[23,1],[9,2]]
Run Code Online (Sandbox Code Playgroud)
但我只需要第一次出现“a”。换句话说我需要获得:
myNewList = [[9,5],[23,1]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这个目标?
首先:
myNewList = []
myNewList.append([[a,b] for a,b in mainList if a in secondaryList])
Run Code Online (Sandbox Code Playgroud)
简单来说就是一样
myNewList = [[a,b] for a,b in mainList if a in secondaryList]
Run Code Online (Sandbox Code Playgroud)
然后:你正在构建的功能在功能上是一个Python字典。您的二元素列表mainList与dict.items()!
所以你要做的就是构建一个dict(mainList反转它,因为通常,你只保存最后一个,而不是第一次出现):
mainDict = dict([reversed(mainList)])
Run Code Online (Sandbox Code Playgroud)
然后你只需制作新列表:
myNewList = [ (key, mainDict[key]) for key in secondaryList ]
Run Code Online (Sandbox Code Playgroud)