gpt4 book ai didi

python - 从数组中提取单独的非零 block

转载 作者:太空狗 更新时间:2023-10-30 01:54:05 24 4
gpt4 key购买 nike

例如有这样一个数组:

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

在 Python 中将非零元素组织在一个列表中的最快方法是什么,其中每个元素都包含连续非零值 block 的索引?

这里的结果将是一个包含许多数组的列表:

([0, 1, 2, 3], [9, 10, 11], [14, 15], [20, 21])

最佳答案

>>> 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]]

关于python - 从数组中提取单独的非零 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com