【问题标题】:Get common list elements between list and a nested list in python在python中获取列表和嵌套列表之间的公共列表元素
【发布时间】:2020-12-16 19:08:45
【问题描述】:

如果 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))

【问题讨论】:

  • 那个 map() 例子是一个语法错误。 Python 不能解析它,我也不能。它存在多个问题。

标签: python dictionary lambda list-comprehension


【解决方案1】:

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

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

推导式与 map 和 filter 函数是等价的。但是这个等效的映射和过滤器不需要map()

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

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

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 2015-10-15
    • 2022-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2022-10-05
    • 2023-02-04
    相关资源
    最近更新 更多