【问题标题】:How to find the duplicate elements in a list of lists?如何在列表列表中查找重复元素?
【发布时间】:2014-01-08 07:03:09
【问题描述】:

我得到了一个列表列表,我想从这个列表列表中挑选出重复的元素并打印出来。列表列表如下,

a = [[0, 1, 2, 3], [4, 5, 6, 375],  [142, 132, 143, 144], [172, 173, 174, 297],  [181, 182, 183, 339], [205, 144, 206, 207], [295, 108, 296, 297]]

我尝试使用以下脚本,

for i in range(len(a)):
   for j in range(1, len(a)):
      for m in range(3):
         for n in range(3):
            if a[i][m] == a[j][n]:
                print a[j][n]

但它只是打印

4
5
6
142
132
143
172
173
174
181
182
183
205
144
206
295
108
296    

有人想尝试帮助我吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    这段代码应该可以工作:

    a = [[0, 1, 2, 3], [4, 5, 6, 375],  [142, 132, 143, 144], [172, 173, 174, 297],  [181, 182, 183, 339], [205, 144, 206, 207], [295, 108, 296, 297]]
    
    master = [] #this will be a list with every individual element
    for array in a: #take every sub-list
         for element in array: #do this for every element in the sub-list
             if not(element in master): #check that it is not a duplicate
                 master.append(element) #add the element to your master list
    
    for element in master:
        print(element)
    

    【讨论】:

      【解决方案2】:
      #!/usr/local/bin/python2.7
      a = [[0, 1, 2, 3], [4, 5, 6, 375],  [142, 132, 143, 144], [172, 173, 174, 297],  [181, 182, 183, 339], [205, 144, 206, 207], [295, 108, 296, 297]]
      a2 = []
      for list1 in a:
        a2.extend(list1)
      print a2
      a2.sort()
      for i, n in enumerate(a2):
        if i < len(a2)-2 and n == a2[i+1]:
          print (n)
      

      我很确定还有其他更高效、更简单的解决方案。等待其他帖子

      【讨论】:

        猜你喜欢
        • 2022-08-09
        • 2015-08-08
        • 2021-01-01
        • 1970-01-01
        • 2010-10-10
        • 1970-01-01
        • 2014-04-21
        • 2015-05-23
        • 2016-01-11
        相关资源
        最近更新 更多