我知道这个错误已经被问了好几次了,但是我还是坚持我的代码,为什么它总是返回TypeError
def merge( s1, s2):
if len(s1) == 0:
return s2[:]
if len(s2) == 0:
return s1[:]
minElm = []
if s1[0] <= s2[0]:
minElm.append( s1.pop(0) )
else:
minElm.append( s2.pop(0) )
return minElm.extend( merge(s1[:], s2[:] ))
list1 = [1,3,5,7,9]
list2 = [2,4,6,8]
merged = merge( list1[:], list2[:] )
print(merged)
基本上,我希望使用递归方法将两个已排序的列表(ASC)合并为一个单独排序的列表(ASC)。我确信我的逻辑是正确的,我只是不明白为什么我得到TypeError: 'NoneType' object is not iterable
为什么我得到TypeError
?在
return minElm.extend( merge(s1[:], s2[:] ))
返回None,特别是因为list.extend
方法返回None。相反,请执行以下操作之一:或者
^{pr2}$这里返回
None
(因为.extend
已就位):相关问题 更多 >
编程相关推荐