2 回答

TA貢獻1817條經驗 獲得超14個贊
您可以比較 of 的第一個元素list1和最后一個元素,list2也可以pop從list2with的末尾開始pop()(不帶任何參數)。最后,你可以append在剩下的列表中l(wèi)ist2,以result與pop()直至一個也不剩。
因此,稍加修改,您的代碼將變?yōu)椋?/p>
def merge2(list1, list2):
results = []
while list1 and list2:
if list1[0] < list2[-1]:
results.append(list1.pop(0))
else:
results.append(list2.pop())
results.extend(list1)
while list2:
results.append(list2.pop())
return results
print(merge2([1,3,11,34], [60,38,7,1,0]))
# [0, 1, 1, 3, 7, 11, 34, 38, 60]

TA貢獻1847條經驗 獲得超11個贊
你可以用for循環(huán)做基本上相同的事情。這意味著只有l(wèi)ist2突變。
def merge2(list1, list2):
result = []
for item in list1:
while list2[-1] < item:
result.append(list2.pop())
result.append(item)
while list2:
result.append(list2.pop())
return result
請注意,這不使用len(這是一個內置函數)
添加回答
舉報