2013-11-03 20 views
0

我必须重新创建2个蟒功能相交“a.union(b)”而a.intersect(b)仅与工具的Python:重新联合和2只列出了基本工具

追加;流行; LEN;同时,因为我在范围内;如果别的; l [i](列表1);和booleens

并在最后有一个函数有2个列表作为参数并返回最终的ordonned列表。 例如

一个= [1.2.5.6]

B = [3.5.6.8.15]

如果我输入f(A,B)和得到的回报[1.2.3.5.6.8 .15](工会) ,如果我输入g(a,b)我得到像[5.6]

我试图通过连续比较列表项,但在这种情况下,如果一个列表更短,它会在另一个人面前被清空,我将比较一个数字与什么都没有。我试图使用while,但我只能检查列表是否被清空而不是两者。

请,如果你能帮助我:■

PS:不beeing English我希望你传递的语言错误,我做到了。

回答

1

如果您可以假设两个输入列表已排序,那么这只是mergesort的合并步骤。为此,您需要两个指数,i和j,并且您一次向前移动其中一个,而不是两个。当它们中的一个到达列表的末尾时,你需要两个while循环 - 一个从第一个列表中取值直到用尽,另一个从第二个列表中取值,直到用完。