我有一個列表如下。顯示在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]]
謝謝
我有一個列表如下。顯示在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]]
謝謝
這個怎麼樣:
>>> 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
如果您發現此解決方案解決了您的問題,請考慮接受它作爲答案(旁邊的勾號) – Totem 2014-10-20 02:12:12
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)
到目前爲止你已經嘗試了什麼?你卡在哪裏? – Mephy 2014-10-19 01:51:38