将两个数组合并在一起后如何清空两个数组的元素

时间:2016-02-24 00:55:36

标签: python arrays merge

#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'

3 个答案:

答案 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