如何使用 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]]
【问题讨论】:
您需要使用lambda
和filter
来执行此操作吗?您是否尝试过使用列表推导和命名函数?
【参考方案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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如果使用我的服务使用Java 8 lambda / streams列表不为空,如何从列表中删除每个元素