显示在python中有两个公共元素的列表

时间:2014-10-19 01:47:00

标签: 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 个答案:

答案 0 :(得分: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

答案 1 :(得分: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)