我正在做這個練習,需要我連接2個已排序的列表,我不確定爲什麼輸出是這種方式。
另外,我已經習慣了C,所以我通常會寫很多「無用」的代碼,只要我可以用python方法完成它。你認爲如果我只是繼續解決問題,那麼對於我來說,以pythonic的方式思考就會很自然嗎?如果有更簡單的方法來解決這個問題,請告訴我。得到這個結果,我該如何解決6號? > [1,2,3,4,5,[6]]
我的代碼:
def conc_sorted(list1, list2):
result = []
i = 0
while True:
if not list1: # checking if both lists still have anything in it
result.append(list2) # to avoid 'out of range'
break
elif not list2:
result.append(list1)
break
else:
result.append(compare(list1, list2)) # calls compare() and appends whatever it pops
print result
def compare(list1, list2):
if (list1[0] < list2[0]):
return list1.pop(0)
else:
return list2.pop(0)
# exemple
list1 = [1, 4, 6]
list2 = [2, 3, 5]
conc_sorted(list1, list2)
輸出> [1,2,3,4,5,[6]]
什麼是你想要的輸出?怎麼樣'list1.extend(list2).sort()' – albert
你需要做這個很長的路還是僅僅因爲你的C背景?這裏有很簡單的Python方法,但也許爲了練習,這些方法是被禁止的。 –
@albert差不多。 '.extend'在原地工作。將這兩行分開。 –