2014-10-19 65 views
-1

我有一个列表如下。显示在Python中有两个公共元素的列表

temp=[[1,2,3],[0,2,3],[4,5,6],[1,4,5],[0,4,5]] 

我想显示所有列表中有第二个和第三个元素是共同的。在日上面的例子中,结果应该是[[1,2,3],[0,2,3],[1,4,5],[0,4,5]]

谢谢

+2

到目前为止你已经尝试了什么?你卡在哪里? – Mephy 2014-10-19 01:51:38

回答

0

这个怎么样:

>>> ends = [i[1:] for i in temp] 
>>> print ends 
[[2, 3], [2, 3], [5, 6], [4, 5], [4, 5]] 

>>> result = [i for i in temp if ends.count(i[1:]) > 1] 
>>> print result 
[[1, 2, 3], [0, 2, 3], [1, 4, 5], [0, 4, 5]] 

对于这个解决方案,我用列表解析,你可以在这里读到过: http://www.secnetix.de/olli/Python/list_comprehensions.hawk

http://www.pythonforbeginners.com/basics/list-comprehensions-in-python

+0

如果您发现此解决方案解决了您的问题,请考虑接受它作为答案(旁边的勾号) – Totem 2014-10-20 02:12:12

0
res = [] 
for idx, i in enumerate(temp): 
    for jdx, j in enumerate(temp): 
     if i[1]==j[1] and i[2]==j[2] and jdx != idx: 
      res.append(i) 
相关问题