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

kx5bkwkv  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(420)
  1. list1 = [[-1,2,3,4,-2], [-4,3,2]]
  2. output = list(
  3. map(
  4. lambda l: list(filter(lambda x: x > 0, l)),
  5. list1
  6. )
  7. )
  8. print(output)

代码打印为

  1. [[2, 3, 4], [3, 2]]

但我也需要一些答案

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

6tdlim6h1#

如果要保留lambda和Map:

  1. list1 = [[-1,2,3,4,-2], [-4,3,2]]
  2. output = list(
  3. map(
  4. lambda l: [i**2 for i in l if i > 0],
  5. list1
  6. )
  7. )
  8. print(output)
fiei3ece

fiei3ece2#

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

  1. list1 = [[-1, 2, 3, 4, -2], [-4, 3, 2]]
  2. output = list(
  3. map(
  4. lambda l: [i**2 for i in list(filter(lambda x: x > 0, l))] ,
  5. list1
  6. )
  7. )
  8. print(output)

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

相关问题