2

シーケンスの最初の数字と次の数字を比較して、数字のリストを分割して、それが大きいかどうかを判断します。この場合、小さい数字が1つ見つかるまでそのサブリストを作成します。そしてお互い

Inputdata = [45,42,78,120,47,2,50,32,34]

45 と 42 を比較すると大きくないため、45 だけでリストを作成し、42 から始めて次のリストと比較し、42 より小さい値を見つけます。

Output = [45] [42,78,120,47] [2,50,32,34]

これは私のコードです:

data = [45,42,78,120,47,2,50,32,34]

m = (len(data))
i=0
list1=[]
emptylist = True
while i <= m:

 for j in range(i+1,len(data)-1):


    if data[i] < data[j]:
        list1.append(data[j])
        emptylist = False

    else:

        if emptylist:

            list1.insert(0,data[i])
            print list1
            i += j
            list1 = []
            emptylist = True
            break

        else:
            list1.insert(0,data[i])
            print list1
            print j
            i += j
            print i
            list1 = []
            emptylist = True
            i += j
            break

私の出力は次のとおりです。

[45]
[42, 78, 120, 47]

問題が見つかりません...何か提案はありますか?ありがとう

PD1。アイデアは、最初の要素が小さい方のサブリストを作成することです。

4

1 に答える 1