在列表(map)中进行语法书写的正确方法是什么



目标是要有一个列表[1:11],其中每个小于5的数字都有x-2。

lst = list[1,11]
lst
[1,2,3,4,5,6,7,8,9,10]

这就是我的工作。尝试:

list(map(lambda x: x-2 for x<5 in lst, lst))
list(map(x-2, filter(lambda x: x<5 in lst))
list(if x < 5 in lst(map(lambda x: x-2)))

我对Python语法很陌生。我在上面所做的尝试和许多其他类似的尝试都导致了SyntaxError。如果我在描述我的问题时犯了错误,我很抱歉,因为我也是Stack的新手。

一个可能的解决方案是:

solution = list(map(lambda x: x-2 if x < 5 else x, lst))

这里有一个可能的解决方案:

result = list(map(lambda x: x-2 if x<5 else x, lst))

这里有另一个可能的解决方案:

result = list(map(lambda x: x-2*(x<5), lst))

以下是您想要的输出(使用lst = list(range(1, 11))(:

>>> result
[-1, 0, 1, 2, 5, 6, 7, 8, 9, 10]

最新更新