从列表中删除值

时间:2018-07-09 13:52:46

标签: python

我有一个看起来像这样的多个数据框:

A = [0,0,0,1,0,-1,2,-3,0,4,-4]
B = [0,0,0,1,-5,0,5,-6,0,4,-3,5,-6]

我想返回一个返回值,其中dataFrame的第一个条目是 -ve 值,最后一个数据是 + ve 值。

输出

A = [-1,2,-3,4]
B = [-5,5,-6,4,-3,5]

如何运行循环以浏览所有数据框?数据帧的长度不同。

1 个答案:

答案 0 :(得分:3)

代码:

a = [0,0,0,1,0,-1,2,-3,0,4,-4]
b = [0,0,0,1,-5,0,5,-6,0,4,-3,5,-6]

def arr(x):
    x[:] = (value for value in x if value != 0)
    while x[0] > 0:

        x.pop(0)

    while x[-1] < 0:
        x.pop()
    # print(x)
    return x

print(arr(a))
print(arr(b))

输出:

[-1, 2, -3, 4]
[-5, 5, -6, 4, -3, 5]

您也可以使用x.pop(0)代替del x[0]