我正在做这个练习,这需要我连接2已经排序的列表,我不知道为什么输出是这样的。
而且,我已经习惯了C,所以我通常会编写大量“无用”的代码,而我只需要使用python方法就可以做到这一点。你认为如果我继续做解题练习,我就会自然而然地用节奏曲的方式思考。如果有更简单的办法解决这个问题,请告诉我。
我的代码:
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]
发布于 2017-07-31 19:57:04
基本大小写是在结果中附加单个元素列表。您需要将.append更改为.extend
if not list1:
result.extend(list2)
break
elif not list2:
result.extend(list1)
break发布于 2017-07-31 20:28:26
您应该在这里使用extend操作而不是追加,因为append一次只接受单个输入(实体)。还有耶!我有一个更简单的代码来解决你的问题。
x=[1,4,6]
y=[2,3,5]
z=x+y
z.sort()
print z
发布于 2017-07-31 20:01:18
sorted (list1 + list2)1,2,3,4,5,6
https://stackoverflow.com/questions/45424254
复制相似问题