0
該程序設計用於獲取由數字(任意長度)組成的字符串,並將該字符串的內容輸出到列表中,一次一位數字。如果數字x小於或等於前面的數字y,則數字x將被插入到子列表中。在數字z大於y之前,x和z之間的所有內容都將被添加到子列表中。下面是代碼將字符串的元素添加到列表中(python)
def numbers_in_lists(string):
final = []
temp = []
prev = 0
for i in range(len(string)):
value = int(string[i])
if value<=prev:
temp.append(value)
else:
if temp != []:
final.append(temp)
temp = []
final.append(value)
prev = int(string[i])
print final
return final
爲了測試這個功能,添加以下的代碼的其餘部分:
string = '543987'
result = [5,[4,3],9,[8,7]]
print repr(string), numbers_in_lists(string) == result
string= '987654321'
result = [9,[8,7,6,5,4,3,2,1]]
print repr(string), numbers_in_lists(string) == result
string = '455532123266'
result = [4, 5, [5, 5, 3, 2, 1, 2, 3, 2], 6, [6]]
print repr(string), numbers_in_lists(string) == result
string = '123456789'
result = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print repr(string), numbers_in_lists(string) == result
後的代碼創建並返回一個子表,它找到一個新的最大值,並沒有按不要給列表添加任何其他內容,從而使最終列表不完整。
如果我用字符串'543987'
的首選結果是[5,[4,3],9,[8,7]]
而我的結果是[5,[4,3],9]
那麼你的問題是什麼? – moritzg
由於不清楚,所以更新了問題的結尾。基本上,列表不會自行填充,它只是在迭代完成子列表後停止。 –