在python中基于列表解析的条件上跳过元素

时间:2017-01-04 15:16:36

标签: python python-2.7 list python-3.x list-comprehension

我有一个清单列表:

function copy() {
    var e = document.getElementById("DeliveryPlaces")
    var selection = parseInt(e.options[e.selectedIndex].value);
    var input = document.getElementById("Commodity").value;
    var field;

    for (var i = 1; i < 6; i++) {
        field = "Commodity" + i;
        if (i <= selection) {
            document.getElementById(field).value = input;
        } else {
            document.getElementById(field).value = "";
        }
    }
}

对于列表中小于零(0)的数字,我想跳过这些数字并形成另一个列表。

实施例: -

List = [-2,9,4,-6,7,0,1,-4]

这是我的一种怀疑,不确定如果我们能够实现。如果可以实现,有人可以在这里发帖。

2 个答案:

答案 0 :(得分:22)

你有很多选择来实现这一目标。使用list comprehension即可:

my_list = [i for i in my_list if i>=0]

使用filter()

my_list = filter(lambda i: i>=0, my_list)

注意:

在Python 3中,filter()返回一个filter对象(不是list),要将其转换为列表,您可以这样做:

my_list = list(filter(lambda i: i>=0, my_list))

答案 1 :(得分:6)

首先使用小写字母表示变量名称,其次不使用list,因为它保留了名称。

然后在列表理解中做一个if

my_list = [i for i in init_list if i >= 0 ]