从两个2个纵向列表中的第二个中获取唯一值

时间:2015-08-21 06:38:45

标签: python python-3.x unique

我询问在old post的两个列表中找到非重复项目并收到答案。

我现在意识到我有不同的要求,但无法调整我的代码或我得到的答案。

我有两个列表,例如

List1= [[1,2],[3,5],[4,4],[5,7]]
List2= [[1,3],[4,4],[3,5],[3,5],[5,6]]
Result= [[1,3],[5,6]]

我只想要第二个列表中的唯一值(不是两个)

我的剧本:

def filter2dim(firstarray, secondarray):
    unique = []
    for i in range(len(firstarray)):
       temp=firstarray[i]
       for j in range(len(secondarray)):
           if(temp == secondarray[j]):
              break
           elif(j==(len(secondarray)-1)):
               unique.append(temp)
    for i in range(len(secondarray)):
       temp=secondarray[i]
       for j in range(len(firstarray)):
           if(temp == firstarray[j]):
              break
           elif(j==(len(firstarray)-1)):
               unique.append(secondarray[i])
    return unique

这不是我想做的事情 - 任何人都可以建议我能做什么才能让它只返回第二个列表中唯一的值?

1 个答案:

答案 0 :(得分:1)

好的,对不起,如果我提出了问题,但在实施之后我找到了答案

    a = {(1,2),(3,5),(4,4),(5,7)}
    b = {(1,3),(4,4),(3,5),(3,5),(5,6)}
    print(a.symmetric_difference(b)) # {(1, 2), (1, 3), (5, 6), (5, 7)}


在我提出的第一个问题中建议,我去谷歌并搜索了symmetric_difference做了什么以及是否有其他选择,并在以下https://docs.python.org/2/library/sets.html中找到答案a.difference(b) }

    a = {(1,2),(3,5),(4,4),(5,7)}
    b = {(1,3),(4,4),(3,5),(3,5),(5,6)}
    print(a.difference(b)) # {(1, 2),(5, 7)}

    a = {(1,2),(3,5),(4,4),(5,7)}
    b = {(1,3),(4,4),(3,5),(3,5),(5,6)}
    print(b.difference(a)) # {(1,3),(5,6)}

谢谢你,最好的问候。