如何在python中将所有负数更改为零?

has*_*ISC 1 python list

我有一个清单

    list1 = [-10,1,2,3,9,-1]
Run Code Online (Sandbox Code Playgroud)

我想将负数更改为零,以便它看起来像

    list1 = [0,1,2,3,9,0]
Run Code Online (Sandbox Code Playgroud)

我该怎么做?谢谢!

Sel*_*cuk 11

你可以使用理解:

list2 = [0 if i < 0 else i for i in list1]
Run Code Online (Sandbox Code Playgroud)

要么

list2 = [(i > 0) * i for i in list1]
Run Code Online (Sandbox Code Playgroud)

请注意,第二个变体仅适用于Python 3 True == 1False == 0.它应该适用于Python 2,但不能保证.


Thi*_*iru 5

您也可以使用该map功能

map(lambda x: max(x,0),list1)
Run Code Online (Sandbox Code Playgroud)