如何删除2d数组中低于0的值,并使用python lambdaMap对剩余值进行平方

kx5bkwkv  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(257)
list1 = [[-1,2,3,4,-2], [-4,3,2]]

output = list(
    map(
        lambda l: list(filter(lambda x: x > 0, l)),
        list1
        )
    )

print(output)

代码打印为

[[2, 3, 4], [3, 2]]

但我也需要一些答案

[[4, 9, 16], [9, 4]]
6tdlim6h

6tdlim6h1#

如果要保留lambda和Map:

list1 = [[-1,2,3,4,-2], [-4,3,2]]

output = list(
    map(
        lambda l: [i**2 for i in l if i > 0], 
        list1
        )
    )   

print(output)
fiei3ece

fiei3ece2#

在lamda函数中添加了一个列表理解,它可以正常工作。

list1 = [[-1, 2, 3, 4, -2], [-4, 3, 2]]

output = list(
    map(
        lambda l: [i**2 for i in list(filter(lambda x: x > 0, l))] ,
        list1
    )
)

print(output)

输出: [[4, 9, 16], [9, 4]]

相关问题