0

我必须仅使用工具重新创建 2 个 python 函数“a.union(b)”和 a.intersect(b)

附加; 流行音乐; len;同时; 因为 i 在范围内;如果别的; l[i](对于列表 l);和布尔值

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

a=[1.2.5.6]

b=[3.5.6.8.15]

如果我输入 f(a,b) 并返回 [1.2.3.5.6.8.15] (union) 如果我输入 g(a,b) 我会得到类似 [5.6]

我试图通过连续比较列表项来做到这一点,但在这种情况下,如果一个列表较短,它将在另一个列表之前被清空,我将比较一个没有任何内容的数字。我尝试使用 while 但我只能检查列表是否为一个而不是两个都清空。

如果你能帮助我,请:s

Ps:不是beeing英语我希望你能传递我犯的语言错误。

4

1 回答 1

1

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

于 2013-11-03T23:24:17.297 回答