如果要获得一个(元素为整数的)列表里面的偶数,很容易想到列表解析:

[i for i in nums if i%2==0]

但是如果要使列表的长度不变,让奇数用0来填充,可能你会直接写:

[i for i in nums if i%2==0 else 0]

那就错了,这是lambda函数的写法,拿到这边就有问题了。

但是有两种方法实现:

首先使用lambda来定义一个f,再将f作用在每个i上:

f = lambda x: x if x%2==0 else 0
[f(i) for i in nums]

另一种做法:

[ i%2==0 and i or 0 for i in nums]

相当于 if i%2==0 则 i 否者 0

 

相关文章:

  • 2022-12-23
  • 2021-09-14
  • 2021-10-25
  • 2021-11-20
  • 2021-12-19
  • 2021-07-14
  • 2022-12-23
猜你喜欢
  • 2022-01-25
  • 2021-04-01
  • 2021-05-31
  • 2022-03-07
  • 2022-12-23
相关资源
相似解决方案