Extract separate non-zero blocks from array

前端 未结 4 937
长发绾君心
长发绾君心 2020-12-30 13:05

having an array like this for example:

[1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1]

What\'s the fastest way in Pytho

4条回答
  •  执笔经年
    2020-12-30 13:37

    >>> L = [1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1]
    >>> import itertools
    >>> import operator
    >>> [[i for i,value in it] for key,it in itertools.groupby(enumerate(L), key=operator.itemgetter(1)) if key != 0]
    
    [[0, 1, 2, 3], [9, 10, 11], [14, 15], [20, 21]]
    

提交回复
热议问题