从列表python的末尾删除连续出现的事件

Mic*_*ael 7 python numpy list python-2.7

我有一个numpy数组:

ar = np.array([True, False, True, True, True])
Run Code Online (Sandbox Code Playgroud)

如果最后一个元素为True,我想删除数组末尾的所有连续true元素.所以举个例子

magic_func(ar) => [True, False]
Run Code Online (Sandbox Code Playgroud)

如果ar = [True, False, True, False, True].然后

magic_func(ar) => [True, False, True, False]
Run Code Online (Sandbox Code Playgroud)

如果ar = [True, False, False],函数什么都不做,因为最后一个元素是False

在python中有一个内衬来做这个吗?使用numpy库或其他东西

Jef*_*and 0

编辑:更新实现以处理 numpy 数组中缺少 .pop() 的问题

def chop_array(ar, condition):
    i = len(ar)
    while (ar[i - 1] == condition and i > 0):
        i = i - 1
    return ar[0:i]

chop_array([True, False, True, False, True], True)
Run Code Online (Sandbox Code Playgroud)