2013-11-03 40 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循環 - 一個從第一個列表中取值直到用盡,另一個從第二個列表中取值,直到用完。