如何使用 lambda 删除列表列表中数字下方的元素? Python [重复]

Posted

技术标签:

【中文标题】如何使用 lambda 删除列表列表中数字下方的元素? Python [重复]【英文标题】:How to remove elements below a number in a list of lists using lambda? Python [duplicate] 【发布时间】:2021-07-23 08:10:24 【问题描述】:

如果每个列表中的值小于或等于 2,则删除它们。

我尝试过的:

check = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
output = list(filter(lambda x: x[0] <= 2, check))
return (output)
预期输出
[[3], [4, 5, 6], [7, 8, 9]]
    

【问题讨论】:

需要使用lambdafilter 来执行此操作吗?您是否尝试过使用列表推导和命名函数? 【参考方案1】:

这是一种不使用 lambda 的方式:

output = [[y for y in x if y>2] for x in check]

【讨论】:

更简单和pythonic【参考方案2】:

你想要的是一个映射到每个列表而不是你应用过滤器函数。

check = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

output = list(map(lambda x: list(filter(lambda y: y > 2,x)), check))
print(output)
输出
[[3], [4, 5, 6], [7, 8, 9]]

【讨论】:

以上是关于如何使用 lambda 删除列表列表中数字下方的元素? Python [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从python中的列表中删除重复的元组?

如何使用 Lambda 语法从列表中删除

如果使用我的服务使用Java 8 lambda / streams列表不为空,如何从列表中删除每个元素

如何根据元组的索引值从列表中删除重复的元组,同时保持元组的顺序? [复制]

使用python从不同长度的元组列表中删除重复项

python中未按数字排序的元组列表