Python 我需要在代码中更改什么才能获得这样的输出[None,2,None,4,None]。我使用lambd函数来实现这一点

Python 我需要在代码中更改什么才能获得这样的输出[None,2,None,4,None]。我使用lambd函数来实现这一点,python,lambda,Python,Lambda,我正在尝试这样做: evenList = ((lambda x : x if x%2==0 else None), [1,2,3,4,5,6]) 预期产出: [None,2,None,4,None,6] 我得到: (<function __main__.<lambda>>, [1,2,3,4,5,6]) (,[1,2,3,4,5,6]) 您刚刚创建了一个元组,没有使用lambda 像这样更改代码 In [10]: list(map((lambda x : x if

我正在尝试这样做:

evenList = ((lambda x : x if x%2==0 else None), [1,2,3,4,5,6])
预期产出:

[None,2,None,4,None,6]
我得到:

(<function __main__.<lambda>>, [1,2,3,4,5,6])
(,[1,2,3,4,5,6])

您刚刚创建了一个元组,没有使用lambda

像这样更改代码

In [10]: list(map((lambda x : x if x%2==0 else None), [1,2,3,4,5,6]))                                                                                                                                       
Out[10]: [None, 2, None, 4, None, 6]
更好地使用列表理解

In [11]: [i if i%2==0 else None for i in [1,2,3,4,5,6]]                                                                                                                                                      
Out[11]: [None, 2, None, 4, None, 6]

你只是创建了一个元组,没有使用lambda

像这样更改代码

In [10]: list(map((lambda x : x if x%2==0 else None), [1,2,3,4,5,6]))                                                                                                                                       
Out[10]: [None, 2, None, 4, None, 6]
更好地使用列表理解

In [11]: [i if i%2==0 else None for i in [1,2,3,4,5,6]]                                                                                                                                                      
Out[11]: [None, 2, None, 4, None, 6]
为什么不简单地使用:

>>> [x if x%2==0 else None for x in range(1,7)]
[None, 2, None, 4, None, 6]
为什么不简单地使用:

>>> [x if x%2==0 else None for x in range(1,7)]
[None, 2, None, 4, None, 6]

不要使用lambda。只需使用一个列表comp.lambda+映射或列表comp(我建议使用第二个选项)即可
[x如果x%2==0,则在[1,2,3,4,5,6]中为x无]
不要使用lambda。只需使用一个列表comp.lambda+映射或列表comp(我建议使用第二个选项)即可
[x如果x%2==0,则x在[1,2,3,4,5,6]]中为无]