#FUNCTION
def merge_array(a, b):
c = []
for i in a:
c.append(i)
for z in b:
if z not in c:
c.append(z)
c.sort()
return c
#MAIN
a = [1,5,2,8,9]
b = [8,4,2,8,10,3,14]
print("Array 1: {}".format(a))
print("Array 2: {}".format(b))
print("Merged List: {}".format(merge_array(a, b)))
print("Array 1 empty: {}".format(a))
print("Array 2 empty: {}".format(b))
尝试将a.pop()和b.pop()放入for循环中,但不会完全删除元素和更改' c'
答案 0 :(得分:0)
你可以这样做:
>>> c = set()
>>> while len(a)>0:
... c.add(a.pop())
...
>>> while len(b)>0:
... c.add(b.pop())
...
>>> a
[]
>>> b
[]
>>> c
set([1, 2, 3, 4, 5, 8, 9, 10, 14])
>>> x = list(c)
>>> x
[1, 2, 3, 4, 5, 8, 9, 10, 14]
希望它有所帮助。
答案 1 :(得分:0)
不太确定这是否是您正在寻找的,但如果您只是想将这些列表添加到一起并注意重复,请尝试:
list(set(a+b))
答案 2 :(得分:0)
tfile
取决于您的操作方式。听起来你正在从正面迭代并从背面弹出。另一种方法是在完成后使用列表推导清除数组。你的例子没有摆脱pop
中的重复,但确实在a
中删除了它们。如果你根本不需要重复,那么评论中会有一个较短的例子,但我保留了原始算法。
b