在Python上删除2D数组中的重复元素

时间:2015-02-25 12:49:02

标签: python arrays

我第二年参加GCSE计算机科学课程,但我遇到了一个问题。我一直在使用Python编写一个程序,允许用户输入符号和字母对来尝试解码编码的消息。

字母和符号将以[[letter, symbol][letter,symbol]]格式保存在2D数组中。我的问题是,当用户输入两次字母或符号时,我找不到标记任何事件的方法。

我一直在修补它一段时间,这是我最好的解决方案:

def DUPLICATE(decodeArray):
    seen = set()
    for item in decodeArray:
        t = tuple(item)
        print(t)
        if t not in seen:
            newList.append(item)
            seen.add(t)
            print(seen) 

不幸的是,如果整个子阵列(不确定正确的单词)是否重复,那么所有这些都是通知,即[[a,b][c,d][a,b]]。 这使用另一个名为newList的数组,如果它发现一个重复的子数组,它就不会包含它。

我已经尝试过自己并使用这个网站寻找方法,但我无法在任何地方找到。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你已经注意到它附加了一个完整的数组。你需要做的只是迭代那个,沿着:

(...)
for row in decodeArray:
    for column in row:
(...)