一)輸入號碼列表創建數字列表的列表。如果排序是錯誤的一個新的子表應創建
i/p = > [2,5,1,4,7,3,1,2,3]
B)輸出應該被排序的子列表
o/p = > [[2,5],[1,4,7],[3],[1,2,3]]
一)輸入號碼列表創建數字列表的列表。如果排序是錯誤的一個新的子表應創建
i/p = > [2,5,1,4,7,3,1,2,3]
B)輸出應該被排序的子列表
o/p = > [[2,5],[1,4,7],[3],[1,2,3]]
算法
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]]
文字的算法的說明:
與空子列表創建輸出列表。枚舉輸入列表。如果前一個元素(如果存在)不大於實際元素,則將該元素添加到輸出的最後一個子列表。如果它更大,請在輸出中創建一個新子列表並將其添加到此新子列表中。
嗨Kordi請你解釋一下代碼 – SlickTester
@ParagGhodaskar加了算法的解釋。你明白嗎? – Kordi
是kordi.I正在嘗試使用冒泡排序,2> 5,5> 1 false,因此請從原始列表中刪除2,5並繼續排序剩餘的列表。我們可以這樣做嗎? – SlickTester
另一種解決方案:
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()
好吧,看來你需要做排序的子列表清單。你試過什麼了? – Ilya
這不是一個真正的問題,請提供文字。 –
@Parag Ghodaskar你看到我的回答? – Kordi