0
我試圖在python中實現合併排序,我想知道循環遍歷兩個列表的pythonic方式是什麼,每個循環只遍歷一個列表。如何循環遍歷兩個列表,每次迭代一個列表?
這是我現在(使用索引)
def merge(array1, array2):
final = []
i = 0
j = 0
while i < len(array1) or j < len(array2):
if array1[i] <= array2[j]:
final.append(array1[i])
i += 1
elif array2[j] < array1[i]:
final.append(array2[j])
j += 1
# Finished one of the arrays
if i == len(array1):
final.extend(array2[j:])
break
elif j == len(array2):
final.extend(array1[i:])
break
return final
感謝。
'而真:'循環內的+流控制處理遞增+代碼的方式'break'。這與你正在做的很相似 –
這會失敗,因爲如果'i> = len(array1)'但是'j
你不應該讓這個問題依賴於合併排序的知識。它會得到更多的關注,如果你使它通用,它不會與錯誤或更正算法混在一起 – slezica