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

时间:2016-03-30 13:51:44

标签: python list

我有一个清单

    list1 = [-10,1,2,3,9,-1]

我想将负数更改为零,使其看起来像

    list1 = [0,1,2,3,9,0]

我该怎么办?谢谢!

3 个答案:

答案 0 :(得分:11)

你可以使用理解:

list2 = [0 if i < 0 else i for i in list1]

list2 = [(i > 0) * i for i in list1]

请注意,第二个变体仅适用于自True == 1False == 0以来的Python 3。它应该与Python 2一起使用,但不能保证。

答案 1 :(得分:3)

您也可以使用map功能

map(lambda x: max(x,0),list1)

答案 2 :(得分:-1)

遍历列表,如果小于0就改变它

def do_the_thing(old_list):
    new_list = []
    for num in old_list:
        if num < 0:
             new_list.append(0)
        else:
            new_list.append(num)
    return new_list