2013-05-04 53 views
0

我正在嘗試迭代列表的兩個連續元素。如何在python中迭代列表中的兩個連續元素?

 mentionedlist=[[1,2,3,4][1,2,3,4][2,3,4,5][3,4,5,5][1,2,3,4][1,2,3,4][]] 

現在我想在列表的天氣第一個元素比較在mentionedlist一張表的mentionedlist和第一個元素是一樣的,我也希望做整個列表中的這些比較。

[1,2,3,4][1,2,3,4] is example of answer that i am expecting. 
+0

你想''1,2,3,4] [1,2,3,4]'然後'[2,3,4,5] [3,4,5,5]'然後''[ 1,2,3,4] [1,2,3,4]'?或者你想''1,2,3,4] [1,2,3,4]'然後'[1,2,3,4] [2,3,4,5]'然後'[2, 3,4,5] [3,4,5,5]'...? – 2013-05-04 02:14:01

+0

我想[1,2,3,4] [1,2,3,4]然後[2,3,4,5] [3,4,5,5]然後[1,2,3,4] [1,2,3,4] – 2013-05-04 04:01:30

回答

1

你可以做這樣的事情,讓連續元素:

mentionedlist=[[1,2,3,4],[1,2,3,4],[2,3,4,5],[3,4,5,5],[1,2,3,4],[1,2,3,4],[]] 
for l1, l2 in zip(mentionedlist, mentionedlist[1:]): 
    print l1, l2 

輸出

[1, 2, 3, 4] [1, 2, 3, 4] 
[1, 2, 3, 4] [2, 3, 4, 5] 
[2, 3, 4, 5] [3, 4, 5, 5] 
[3, 4, 5, 5] [1, 2, 3, 4] 
[1, 2, 3, 4] [1, 2, 3, 4] 
[1, 2, 3, 4] [] 

要做到兩兩比較:

for l1, l2 in zip(mentionedlist, mentionedlist[1:]): 
    if len(l1) == len(l2) and sum(x != y for x,y in zip(l1, l2)) == 0: 
     print l1, l2 

它給你:

[1, 2, 3, 4] [1, 2, 3, 4] 
[1, 2, 3, 4] [1, 2, 3, 4] 
+0

感謝這爲我工作。 – 2013-05-04 05:00:57

+0

@NileshAgrawal你遇到了我建議的方法有問題嗎? (只是想知道) – HennyH 2013-05-04 06:02:37

+0

它運作良好。謝謝 。 – 2013-05-04 06:11:51

1

注意:你也需要把值之間的逗號在列表中,即List=[[1,..],[2,..]]

from itertools import islice 
mentionedList=[[1,2,3,4],[1,2,3,4],[2,3,4,5],[3,4,5,5],[1,2,3,4],[1,2,3,4],[]] 
for i,v in enumerate(islice(mentionedList,0,len(mentionedList)-1)): 
    print (v,mentionedList[i+1]) 

爲您提供:

([1, 2, 3, 4], [1, 2, 3, 4]) 
([1, 2, 3, 4], [2, 3, 4, 5]) 
([2, 3, 4, 5], [3, 4, 5, 5]) 
([3, 4, 5, 5], [1, 2, 3, 4]) 
([1, 2, 3, 4], [1, 2, 3, 4]) 
([1, 2, 3, 4], []) 

使用此方法,您不需要複製列表。

相關問題