我正在做这个练习,需要我连接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'在原地工作。将这两行分开。 –