что мне нужно изменить в моем коде, чтобы получить мой вывод, как это [Нет, 2, Нет, 4, Нет]. Я использую функцию lambd, чтобы сделать это - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь сделать это:

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])

Ответы [ 2 ]

2 голосов
/ 28 мая 2019

Вы только что создали кортеж, не используя эту лямбду,

Измените свой код следующим образом,

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]
0 голосов
/ 28 мая 2019

Почему бы просто не использовать:

>>> [x if x%2==0 else None for x in range(1,7)]
[None, 2, None, 4, None, 6]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...