我想在列表中标识连续数字组,以便:
myfunc([2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20])
Run Code Online (Sandbox Code Playgroud)
返回:
[(2,5), (12,17), 20]
Run Code Online (Sandbox Code Playgroud)
并且想知道最好的方法是什么(特别是如果在Python中有内置的东西).
编辑:注意我原本忘了提到个别数字应该作为单独的数字返回,而不是范围.
我有以下数组
a = [1, 2, 3, 0, 0, 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 9, 8, 7,0,10,11]
Run Code Online (Sandbox Code Playgroud)
我希望找到连续值为零的数组的开始和结束索引,对于输出上方的数组,如下所示
[3,8],[12,15],[19]
Run Code Online (Sandbox Code Playgroud)
我想尽可能高效地做到这一点.
在阅读python文档时,我遇到了这个itertools.groupby()
函数.这不是很简单所以我决定在stackoverflow上查找一些信息.我从如何使用Python的itertools.groupby()中找到了一些东西?.
在这里和文档中似乎没有关于它的信息,所以我决定发表我的意见以征求意见.
谢谢