我不知道为什么这会返回无
def list_union(self,A,B):
A = self.separate(A["fill"])
B = self.separate(B["fill"])
print A
print B
if len(A)==1 and A[0]=="no":
return B.sort()
if len(B)==1 and B[0]=="no":
return ["no"]
假设A和B作为列表类型返回(它是,它工作正常)
A和B可能包含字符串是或否。我只是不知道他们为什么要回来。
让我补充一点,我不在乎这两个陈述是否错误,因为这个程序还有更多内容,但我认为无论我遇到什么问题都可以解决为什么这不是工作
答案 0 :(得分:4)
默认情况下,Python中的函数返回None
。在您的情况下,它有两个退出点,但如果其中一个条件为True
,则只会 <\ n>。问问自己,如果两个条件都是False
会发生什么?在最后添加另一个返回,以处理这种情况并返回一个适当的值(或者如果有意义则引发异常):
return "Unexpected result" # just an example
另请注意,sort()
不会返回一个值(它会对列表进行就地排序),因此它也会评估为None
!换句话说,您应该更改此行:
return B.sort()
请改为:
B.sort()
return B
或者这样做, 返回一个新的排序列表:
return sorted(B)
答案 1 :(得分:1)
B.sort()
不会返回B,它会返回None
!
(但B按你的意愿排序)
您可以使用sorted(B)
返回您想要的内容。
实际上,内置的sort()方法就地修改了列表。
sorted()内置函数构建一个新的排序列表。