首页 > 解决方案 > 创建列表中存在的顺序整数的子列表并将它们存储在python中的另一个嵌套列表中

问题描述

我有一个这样的数组列表:

list = [1,2,3,4,9,1,12,9,8,7,8,9,10,12,16,1,2,3,4,5,6,7,8,9,10]

我想从有序数字列表中创建一个子列表(它们已经在 arr_list 中按顺序排列,例如 1、2、3、4 已经按顺序排列,类似 7、8、9、10 和最后 10 个数字)

最终输出将如下所示:

[[1,2,3,4],[7,8,9,10],[1,2,3,4,5,6,7,8,9,10]]

尝试比较第一个 for 循环的第 i 个元素是否小于第二个 for 循环的第 j 个元素。

这是我尝试过的:

sub_list=[]
for i in range(0,length_of_list):
    for j in range(i+1,length_of_list):
        if (arr_list[i] < arr_list[j]):
            sub_list.append(arr_list[i]) 
        else:
            pass

python新手,非常感谢任何线索。

标签: pythonarrayspython-3.x

解决方案


尝试这个...

res, temp = [], []
lst = [1,2,3,4,9,1,12,9,8,7,8,9,10,12,16,1,2,3,4,5,6,7,8,9,10]
for i in lst:
    if (not temp) or (temp[-1] == i-1):
        temp.append(i)
    else:
        res.append(temp)
        temp = [i]
res.append(temp)
print([i for i in res if len(i)>1])

输出:

[[1, 2, 3, 4], [7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]

告诉我它是否适合你...


推荐阅读