在 python 中获取列表和嵌套列表之间的公共列表元素

Get common list elements between list and a nested list in python

如果 ListA 中存在 listB[0],我想从 listB 中提取列表元素

listA = ["A", "B"]
listB = [("F",4),("A",7),("C",5)]

预期列表:[("A",7)]


我试过了:

[[i for i in listB if x == i[0]] for x in listA]

但我得到了这个结果:[[('A', 7)], []]

我也尝试用 MAP 和 lamda 来做,但我遇到了错误。 谁能告诉我错误到底在哪里

list(map(lambda x: i for i in listB if x == i[0], listA))

你只需要做一个循环。 in 运算符将执行另一个操作。

>>> listA = ["A", "B"]
>>> listB = [("F",4),("A",7),("C",5)]
>>> [pair for pair in listB if pair[0] in listA]
[('A', 7)]

理解与映射和过滤函数之间存在等价关系。但是这个等效的映射和过滤器不需要 map():

>>> list(filter(lambda pair: pair[0] in listA, listB))
[('A', 7)]

惯用的 Python 风格是如果您必须制作 lambda,则更喜欢理解版本。