如何在Python3中按数字顺序查找列表中的数字?

时间:2018-05-17 03:56:58

标签: python python-3.x list

我有一个列表,如下:

list_1 = [1,2,2,3,1,2]

我想创建另一个嵌套列表:

[[1,2,2,1,2],[2,2,3,2]]

第一个嵌套列表仅由1和2组成,因为根据数字顺序,2在1之后,1必须包括在内。 3不在第一个嵌套列表中,因为1之后是2而不是3。

在第二个嵌套列表中,有2个和3个,因为3个在2之后,需要包含2个。 1不存在,因为一个人不会在2之后。

如何在Python 3中实现这一目标?

2 个答案:

答案 0 :(得分:2)

list_1 = [1,2,2,3,1,2]

m = max(list_1)
print([[i for i in list_1 if i in [j,j+1] ] for j in range(1,m)])

#[[1, 2, 2, 1, 2], [2, 2, 3, 2]]




#list_1 = [1,2,2,3,1,2,4,2,3,6,5,4]
#->[[1, 2, 2, 1, 2, 2], [2, 2, 3, 2, 2, 3], [3, 4, 3, 4], [4, 5, 4], [6, 5]]

答案 1 :(得分:1)

如果你没有功能性的衬垫,你就可以这样做。

def listsep(lst, sep):

    l1 = []
    l2 = []

    for v in lst:
        if v <= sep:
            l1.append(v)

        if v >= sep:
            l2.append(v)


    return [l1, l2]

print(listsep([1,2,2,3,1,2], 2))

只要迭代输入并附加到每个列表,如果小于/等于或大于/等于。这只会对输入进行一次迭代。