有没有一种方法可以合并2个排序的列表,其中list1按升序排列,list2按降序排列,但新合并的列表应按升序排列。我希望这样做不使用任何内置函数或递归。你知道吗
我有以下内容,但它只在list2也是按升序排列时起作用。你知道吗
def merge2(list1, list2):
results = []
while len(list1) and len(list2):
if list1[0] < list2[0]:
results.append(list1.pop(0))
else:
results.append(list2.pop(0))
results.extend(list1)
results.extend(list2)
return results
函数应产生以下内容:
merge2([1,3,11,34],[60,38,7,1,0]) => [0,1,1,3,7,11,34,38,60]
您可以比较
list1
的第一个元素和list2
的最后一个元素,并且可以从list2
的末尾pop
与pop()
进行比较(不带任何参数)。最后,您可以使用pop()
将list2
到result
中的剩余列表append
到没有剩余列表为止。你知道吗所以只要稍加修改,您的代码就会变成:
使用
for
循环可以做基本相同的事情。 这意味着只有list2
突变。你知道吗注意,这不使用
len
(这是一个内置函数)相关问题 更多 >
编程相关推荐