创建数字列表列表。如果排序错误,则应创建新的子列表

时间:2016-03-03 09:03:04

标签: python sublist

a)输入是数字列表

i/p = > [2,5,1,4,7,3,1,2,3]

b)输出应该是分类子列表

o/p = > [[2,5],[1,4,7],[3],[1,2,3]]

2 个答案:

答案 0 :(得分:0)

另一种解决方案:

def sortedsublist():
'''create sorted sublist from the given list'''
    inputl = []
    sortedl = []
    subl = []
    inputl = [7,8,9,2,3,1,2,3,1,2,1]
    for i in range(len(inputl)):
    try:
    if inputl[i] <= inputl[i+1]:
        subl.append(inputl[i])
    else:
        subl.append(inputl[i])
        sortedl.append(subl)
        subl= []    
     except IndexError:
        subl.append(inputl[i])
        sortedl.append(subl)
        subl = []
    print sortedl   
    return
if __name__="main":
    sortedsublist()

答案 1 :(得分:-1)

<强>算法

input = [2,5,1,4,7,3,1,2,3]

output = [[]]
for idx,val in enumerate(input):
    if idx > 0 and input[idx-1] > input[idx]:
        output.append([val])
    else:
        output[-1].append(val)

print output

输出

[[2, 5], [1, 4, 7], [3], [1, 2, 3]]

用语言解释算法:

创建一个带有空子列表的输出列表。枚举输入列表。如果前一个元素(如果存在)不大于实际元素,则将该元素添加到输出的最后一个子列表中。如果它更大,则在输出中创建一个新子列表并将其添加到此新子列表中。