从数组中分隔连续数字(Python)

从数组中分隔连续数字(Python),python,arrays,list,Python,Arrays,List,我有一个数组: (array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 70, 71, 72, 73, 74, 75, 76, 77,

我有一个数组:

(array([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,
         14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,
         27,  28,  29,  30,  31,  32,  33,  34,  70,  71,  72,  73,  74,
         75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,
         88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100,
        101, 102, 103, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
        149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
        162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172], dtype=int64),)
我想把连续的数字分成不同的列表。像这样:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 

18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,  29, 30, 31, 32, 33, 34]


如何在Python中实现这一点?谢谢。

您可以使用索引,数组从0开始,因此第一个元素是数组[0] 同样,您可以检查索引并开始索引,例如:
`数组[0:10]”将给出前10个元素,称为切片。

您可以使用带有while循环的列表进行比较,然后将结果附加到列表中。例如:

lst = [  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,
         14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,
         27,  28,  29,  30,  31,  32,  33,  34,  70,  71,  72,  73,  74,
         75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,
         88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100,
        101, 102, 103, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
        149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
        162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172]


i,j = 1, 0
consecutives = [[]]

while i < len(lst):
    if lst[i-1] == lst[i]-1:
        consecutives[j].append(lst[i-1])
    else:
        consecutives.append([])
        consecutives[j].append(lst[i-1])
        j += 1
    i += 1

print(consecutives)

lst=[1,2,3,4,5,6,7,8,9,10,11,12,13,
14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,
27,  28,  29,  30,  31,  32,  33,  34,  70,  71,  72,  73,  74,
75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,
88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100,
101, 102, 103, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172]
i、 j=1,0
连续性=[]]
而i
请重复并从中删除。“演示如何解决此编码问题?”与堆栈溢出无关。您必须诚实地尝试解决方案,然后询问有关实现的具体问题。
[139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 

154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172]
lst = [  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,
         14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,
         27,  28,  29,  30,  31,  32,  33,  34,  70,  71,  72,  73,  74,
         75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,
         88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100,
        101, 102, 103, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
        149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
        162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172]


i,j = 1, 0
consecutives = [[]]

while i < len(lst):
    if lst[i-1] == lst[i]-1:
        consecutives[j].append(lst[i-1])
    else:
        consecutives.append([])
        consecutives[j].append(lst[i-1])
        j += 1
    i += 1

print(consecutives)