1

我正在尝试删除从列表中创建的位数组的前导 0。我想做的是:

while binPayload[0] == 0:
    del binPayload[0]

然而,中断器正在抛出:

IndexError: list assignment index out of range.
4

2 回答 2

2

您应该在每次索引之前检查列表是否为空。由于空列表被认为是 false,您可以简单地执行以下操作:

while binPayload and binPayload[0] == 0:
    del binPayload[0]
于 2013-09-14T02:17:32.490 回答
1

试试这个:

import itertools as it
a = [0, 0, 0, 0, 1, 1, 1, 1]
list(it.dropwhile(lambda x: x == 0, a))
=> [1, 1, 1, 1]
于 2013-09-14T02:28:13.000 回答